@educarehq/solaris-ui 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/educarehq-solaris-ui.d.ts +5 -0
  2. package/esm2022/educarehq-solaris-ui.js +5 -0
  3. package/esm2022/educarehq-solaris-ui.js.map +1 -0
  4. package/esm2022/index.js +109 -0
  5. package/esm2022/index.js.map +1 -0
  6. package/esm2022/lib/components/actions/button/directives/button-icon.directive.js +17 -0
  7. package/esm2022/lib/components/actions/button/directives/button-icon.directive.js.map +1 -0
  8. package/esm2022/lib/components/actions/button/directives/button.directive.js +60 -0
  9. package/esm2022/lib/components/actions/button/directives/button.directive.js.map +1 -0
  10. package/esm2022/lib/components/actions/button/index.js +3 -0
  11. package/esm2022/lib/components/actions/button/index.js.map +1 -0
  12. package/esm2022/lib/components/actions/button/model/button.types.js +1 -0
  13. package/esm2022/lib/components/actions/button/model/button.types.js.map +1 -0
  14. package/esm2022/lib/components/actions/button-group/component/button-group.component.js +21 -0
  15. package/esm2022/lib/components/actions/button-group/component/button-group.component.js.map +1 -0
  16. package/esm2022/lib/components/actions/button-group/model/button-group.types.js +1 -0
  17. package/esm2022/lib/components/actions/button-group/model/button-group.types.js.map +1 -0
  18. package/esm2022/lib/components/actions/icon-button/directives/icon-button-badge.directive.js +17 -0
  19. package/esm2022/lib/components/actions/icon-button/directives/icon-button-badge.directive.js.map +1 -0
  20. package/esm2022/lib/components/actions/icon-button/directives/icon-button.directive.js +58 -0
  21. package/esm2022/lib/components/actions/icon-button/directives/icon-button.directive.js.map +1 -0
  22. package/esm2022/lib/components/actions/icon-button/model/icon-button.types.js +1 -0
  23. package/esm2022/lib/components/actions/icon-button/model/icon-button.types.js.map +1 -0
  24. package/esm2022/lib/components/data-display/badge/component/badge.component.js +24 -0
  25. package/esm2022/lib/components/data-display/badge/component/badge.component.js.map +1 -0
  26. package/esm2022/lib/components/data-display/badge/directives/badge-icon.directive.js +17 -0
  27. package/esm2022/lib/components/data-display/badge/directives/badge-icon.directive.js.map +1 -0
  28. package/esm2022/lib/components/data-display/badge/index.js +3 -0
  29. package/esm2022/lib/components/data-display/badge/index.js.map +1 -0
  30. package/esm2022/lib/components/data-display/badge/model/badge.types.js +1 -0
  31. package/esm2022/lib/components/data-display/badge/model/badge.types.js.map +1 -0
  32. package/esm2022/lib/components/data-display/card/component/card.component.js +20 -0
  33. package/esm2022/lib/components/data-display/card/component/card.component.js.map +1 -0
  34. package/esm2022/lib/components/data-display/card/directives/card-actions.directive.js +17 -0
  35. package/esm2022/lib/components/data-display/card/directives/card-actions.directive.js.map +1 -0
  36. package/esm2022/lib/components/data-display/card/directives/card-content.directive.js +17 -0
  37. package/esm2022/lib/components/data-display/card/directives/card-content.directive.js.map +1 -0
  38. package/esm2022/lib/components/data-display/card/directives/card-description.directive.js +17 -0
  39. package/esm2022/lib/components/data-display/card/directives/card-description.directive.js.map +1 -0
  40. package/esm2022/lib/components/data-display/card/directives/card-footer.directive.js +19 -0
  41. package/esm2022/lib/components/data-display/card/directives/card-footer.directive.js.map +1 -0
  42. package/esm2022/lib/components/data-display/card/directives/card-header.directive.js +17 -0
  43. package/esm2022/lib/components/data-display/card/directives/card-header.directive.js.map +1 -0
  44. package/esm2022/lib/components/data-display/card/directives/card-media.directive.js +17 -0
  45. package/esm2022/lib/components/data-display/card/directives/card-media.directive.js.map +1 -0
  46. package/esm2022/lib/components/data-display/card/directives/card-title.directive.js +17 -0
  47. package/esm2022/lib/components/data-display/card/directives/card-title.directive.js.map +1 -0
  48. package/esm2022/lib/components/data-display/card/model/card.types.js +1 -0
  49. package/esm2022/lib/components/data-display/card/model/card.types.js.map +1 -0
  50. package/esm2022/lib/components/data-display/divider/component/divider.component.js +46 -0
  51. package/esm2022/lib/components/data-display/divider/component/divider.component.js.map +1 -0
  52. package/esm2022/lib/components/data-display/divider/index.js +2 -0
  53. package/esm2022/lib/components/data-display/divider/index.js.map +1 -0
  54. package/esm2022/lib/components/data-display/divider/model/divider.types.js +1 -0
  55. package/esm2022/lib/components/data-display/divider/model/divider.types.js.map +1 -0
  56. package/esm2022/lib/components/feedback/alert/component/alert-actions.component.js +18 -0
  57. package/esm2022/lib/components/feedback/alert/component/alert-actions.component.js.map +1 -0
  58. package/esm2022/lib/components/feedback/alert/component/alert.component.js +90 -0
  59. package/esm2022/lib/components/feedback/alert/component/alert.component.js.map +1 -0
  60. package/esm2022/lib/components/feedback/alert/directives/alert-description.directive.js +17 -0
  61. package/esm2022/lib/components/feedback/alert/directives/alert-description.directive.js.map +1 -0
  62. package/esm2022/lib/components/feedback/alert/directives/alert-title.directive.js +17 -0
  63. package/esm2022/lib/components/feedback/alert/directives/alert-title.directive.js.map +1 -0
  64. package/esm2022/lib/components/feedback/alert/model/alert.types.js +1 -0
  65. package/esm2022/lib/components/feedback/alert/model/alert.types.js.map +1 -0
  66. package/esm2022/lib/components/feedback/skeleton/component/skeleton.component.js +69 -0
  67. package/esm2022/lib/components/feedback/skeleton/component/skeleton.component.js.map +1 -0
  68. package/esm2022/lib/components/feedback/skeleton/model/skeleton.types.js +1 -0
  69. package/esm2022/lib/components/feedback/skeleton/model/skeleton.types.js.map +1 -0
  70. package/esm2022/lib/components/feedback/toast/component/toast.component.js +268 -0
  71. package/esm2022/lib/components/feedback/toast/component/toast.component.js.map +1 -0
  72. package/esm2022/lib/components/feedback/toast/container/toast-container.component.js +24 -0
  73. package/esm2022/lib/components/feedback/toast/container/toast-container.component.js.map +1 -0
  74. package/esm2022/lib/components/feedback/toast/model/toast.types.js +1 -0
  75. package/esm2022/lib/components/feedback/toast/model/toast.types.js.map +1 -0
  76. package/esm2022/lib/components/feedback/toast/provider/provide-solaris-toast.js +17 -0
  77. package/esm2022/lib/components/feedback/toast/provider/provide-solaris-toast.js.map +1 -0
  78. package/esm2022/lib/components/feedback/toast/service/toast.service.js +219 -0
  79. package/esm2022/lib/components/feedback/toast/service/toast.service.js.map +1 -0
  80. package/esm2022/lib/components/feedback/toast/token/toast.tokens.js +13 -0
  81. package/esm2022/lib/components/feedback/toast/token/toast.tokens.js.map +1 -0
  82. package/esm2022/lib/components/forms/checkbox/component/checkbox.component.js +227 -0
  83. package/esm2022/lib/components/forms/checkbox/component/checkbox.component.js.map +1 -0
  84. package/esm2022/lib/components/forms/checkbox/model/checkbox.types.js +1 -0
  85. package/esm2022/lib/components/forms/checkbox/model/checkbox.types.js.map +1 -0
  86. package/esm2022/lib/components/forms/checkbox-group/component/checkbox-group.component.js +441 -0
  87. package/esm2022/lib/components/forms/checkbox-group/component/checkbox-group.component.js.map +1 -0
  88. package/esm2022/lib/components/forms/checkbox-group/model/checkbox-group.types.js +1 -0
  89. package/esm2022/lib/components/forms/checkbox-group/model/checkbox-group.types.js.map +1 -0
  90. package/esm2022/lib/components/forms/email-field/component/email-field.component.js +215 -0
  91. package/esm2022/lib/components/forms/email-field/component/email-field.component.js.map +1 -0
  92. package/esm2022/lib/components/forms/email-field/model/email-field.types.js +1 -0
  93. package/esm2022/lib/components/forms/email-field/model/email-field.types.js.map +1 -0
  94. package/esm2022/lib/components/forms/email-field/validators/email-field.validators.js +69 -0
  95. package/esm2022/lib/components/forms/email-field/validators/email-field.validators.js.map +1 -0
  96. package/esm2022/lib/components/forms/form-field/component/form-error.component.js +19 -0
  97. package/esm2022/lib/components/forms/form-field/component/form-error.component.js.map +1 -0
  98. package/esm2022/lib/components/forms/form-field/component/form-field.component.js +442 -0
  99. package/esm2022/lib/components/forms/form-field/component/form-field.component.js.map +1 -0
  100. package/esm2022/lib/components/forms/form-field/component/form-hint.component.js +18 -0
  101. package/esm2022/lib/components/forms/form-field/component/form-hint.component.js.map +1 -0
  102. package/esm2022/lib/components/forms/form-field/component/form-label.component.js +18 -0
  103. package/esm2022/lib/components/forms/form-field/component/form-label.component.js.map +1 -0
  104. package/esm2022/lib/components/forms/form-field/directives/form-field-trigger.directive.js +14 -0
  105. package/esm2022/lib/components/forms/form-field/directives/form-field-trigger.directive.js.map +1 -0
  106. package/esm2022/lib/components/forms/form-field/directives/form-prefix.directive.js +17 -0
  107. package/esm2022/lib/components/forms/form-field/directives/form-prefix.directive.js.map +1 -0
  108. package/esm2022/lib/components/forms/form-field/directives/form-suffix.directive.js +17 -0
  109. package/esm2022/lib/components/forms/form-field/directives/form-suffix.directive.js.map +1 -0
  110. package/esm2022/lib/components/forms/form-field/index.js +8 -0
  111. package/esm2022/lib/components/forms/form-field/index.js.map +1 -0
  112. package/esm2022/lib/components/forms/form-field/model/form-control.contract.js +3 -0
  113. package/esm2022/lib/components/forms/form-field/model/form-control.contract.js.map +1 -0
  114. package/esm2022/lib/components/forms/form-field/model/form-field.types.js +1 -0
  115. package/esm2022/lib/components/forms/form-field/model/form-field.types.js.map +1 -0
  116. package/esm2022/lib/components/forms/input/directives/input.directive.js +148 -0
  117. package/esm2022/lib/components/forms/input/directives/input.directive.js.map +1 -0
  118. package/esm2022/lib/components/forms/input/index.js +2 -0
  119. package/esm2022/lib/components/forms/input/index.js.map +1 -0
  120. package/esm2022/lib/components/forms/input/model/input.defaults.js +27 -0
  121. package/esm2022/lib/components/forms/input/model/input.defaults.js.map +1 -0
  122. package/esm2022/lib/components/forms/input/model/input.types.js +1 -0
  123. package/esm2022/lib/components/forms/input/model/input.types.js.map +1 -0
  124. package/esm2022/lib/components/forms/multi-select/component/multi-select.component.js +1102 -0
  125. package/esm2022/lib/components/forms/multi-select/component/multi-select.component.js.map +1 -0
  126. package/esm2022/lib/components/forms/multi-select/model/multi-select.types.js +1 -0
  127. package/esm2022/lib/components/forms/multi-select/model/multi-select.types.js.map +1 -0
  128. package/esm2022/lib/components/forms/option/component/option.component.js +149 -0
  129. package/esm2022/lib/components/forms/option/component/option.component.js.map +1 -0
  130. package/esm2022/lib/components/forms/option/directives/option-slots.directive.js +58 -0
  131. package/esm2022/lib/components/forms/option/directives/option-slots.directive.js.map +1 -0
  132. package/esm2022/lib/components/forms/option/index.js +3 -0
  133. package/esm2022/lib/components/forms/option/index.js.map +1 -0
  134. package/esm2022/lib/components/forms/option/model/option.types.js +1 -0
  135. package/esm2022/lib/components/forms/option/model/option.types.js.map +1 -0
  136. package/esm2022/lib/components/forms/option-group/component/option-group.component.js +103 -0
  137. package/esm2022/lib/components/forms/option-group/component/option-group.component.js.map +1 -0
  138. package/esm2022/lib/components/forms/option-group/index.js +2 -0
  139. package/esm2022/lib/components/forms/option-group/index.js.map +1 -0
  140. package/esm2022/lib/components/forms/option-group/model/option-group.types.js +1 -0
  141. package/esm2022/lib/components/forms/option-group/model/option-group.types.js.map +1 -0
  142. package/esm2022/lib/components/forms/password-field/component/password-field.component.js +299 -0
  143. package/esm2022/lib/components/forms/password-field/component/password-field.component.js.map +1 -0
  144. package/esm2022/lib/components/forms/password-field/model/password-field-constants.js +5 -0
  145. package/esm2022/lib/components/forms/password-field/model/password-field-constants.js.map +1 -0
  146. package/esm2022/lib/components/forms/password-field/model/password-field.types.js +1 -0
  147. package/esm2022/lib/components/forms/password-field/model/password-field.types.js.map +1 -0
  148. package/esm2022/lib/components/forms/password-field/model/password-policy.types.js +1 -0
  149. package/esm2022/lib/components/forms/password-field/model/password-policy.types.js.map +1 -0
  150. package/esm2022/lib/components/forms/password-field/model/password-strength.js +67 -0
  151. package/esm2022/lib/components/forms/password-field/model/password-strength.js.map +1 -0
  152. package/esm2022/lib/components/forms/password-field/validators/password.validator.js +45 -0
  153. package/esm2022/lib/components/forms/password-field/validators/password.validator.js.map +1 -0
  154. package/esm2022/lib/components/forms/radio/component/radio.component.js +219 -0
  155. package/esm2022/lib/components/forms/radio/component/radio.component.js.map +1 -0
  156. package/esm2022/lib/components/forms/radio/model/radio.types.js +1 -0
  157. package/esm2022/lib/components/forms/radio/model/radio.types.js.map +1 -0
  158. package/esm2022/lib/components/forms/radio-group/component/radio-group.component.js +348 -0
  159. package/esm2022/lib/components/forms/radio-group/component/radio-group.component.js.map +1 -0
  160. package/esm2022/lib/components/forms/radio-group/model/radio-group.token.js +3 -0
  161. package/esm2022/lib/components/forms/radio-group/model/radio-group.token.js.map +1 -0
  162. package/esm2022/lib/components/forms/radio-group/model/radio-group.types.js +1 -0
  163. package/esm2022/lib/components/forms/radio-group/model/radio-group.types.js.map +1 -0
  164. package/esm2022/lib/components/forms/select/component/select.component.js +815 -0
  165. package/esm2022/lib/components/forms/select/component/select.component.js.map +1 -0
  166. package/esm2022/lib/components/forms/select/model/select.types.js +1 -0
  167. package/esm2022/lib/components/forms/select/model/select.types.js.map +1 -0
  168. package/esm2022/lib/components/forms/switch/component/switch.component.js +211 -0
  169. package/esm2022/lib/components/forms/switch/component/switch.component.js.map +1 -0
  170. package/esm2022/lib/components/forms/switch/index.js +2 -0
  171. package/esm2022/lib/components/forms/switch/index.js.map +1 -0
  172. package/esm2022/lib/components/forms/switch/model/switch.types.js +1 -0
  173. package/esm2022/lib/components/forms/switch/model/switch.types.js.map +1 -0
  174. package/esm2022/lib/components/forms/switch-group/component/switch-group.component.js +369 -0
  175. package/esm2022/lib/components/forms/switch-group/component/switch-group.component.js.map +1 -0
  176. package/esm2022/lib/components/forms/switch-group/model/switch-group.types.js +1 -0
  177. package/esm2022/lib/components/forms/switch-group/model/switch-group.types.js.map +1 -0
  178. package/esm2022/lib/components/forms/textarea/directives/textarea.directive.js +137 -0
  179. package/esm2022/lib/components/forms/textarea/directives/textarea.directive.js.map +1 -0
  180. package/esm2022/lib/components/forms/textarea/model/textarea.types.js +1 -0
  181. package/esm2022/lib/components/forms/textarea/model/textarea.types.js.map +1 -0
  182. package/esm2022/lib/components/icon/component/solaris-icon.component.js +20 -0
  183. package/esm2022/lib/components/icon/component/solaris-icon.component.js.map +1 -0
  184. package/esm2022/lib/components/icon/index.js +2 -0
  185. package/esm2022/lib/components/icon/index.js.map +1 -0
  186. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-group.component.js +27 -0
  187. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-group.component.js.map +1 -0
  188. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-item.component.js +96 -0
  189. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-item.component.js.map +1 -0
  190. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-label.component.js +22 -0
  191. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-label.component.js.map +1 -0
  192. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu.component.js +105 -0
  193. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu.component.js.map +1 -0
  194. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-submenu-trigger.component.js +95 -0
  195. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-submenu-trigger.component.js.map +1 -0
  196. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-submenu.component.js +631 -0
  197. package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-submenu.component.js.map +1 -0
  198. package/esm2022/lib/components/interaction/dropdown-menu/directives/dropdown-menu-trigger.directive.js +365 -0
  199. package/esm2022/lib/components/interaction/dropdown-menu/directives/dropdown-menu-trigger.directive.js.map +1 -0
  200. package/esm2022/lib/components/interaction/dropdown-menu/index.js +8 -0
  201. package/esm2022/lib/components/interaction/dropdown-menu/index.js.map +1 -0
  202. package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-menu-navigation.js +3 -0
  203. package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-menu-navigation.js.map +1 -0
  204. package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-menu.types.js +1 -0
  205. package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-menu.types.js.map +1 -0
  206. package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-submenu.types.js +1 -0
  207. package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-submenu.types.js.map +1 -0
  208. package/esm2022/lib/components/interaction/popover/component/popover-panel.component.js +29 -0
  209. package/esm2022/lib/components/interaction/popover/component/popover-panel.component.js.map +1 -0
  210. package/esm2022/lib/components/interaction/popover/directives/popover-trigger.directive.js +325 -0
  211. package/esm2022/lib/components/interaction/popover/directives/popover-trigger.directive.js.map +1 -0
  212. package/esm2022/lib/components/interaction/popover/directives/popover.directive.js +16 -0
  213. package/esm2022/lib/components/interaction/popover/directives/popover.directive.js.map +1 -0
  214. package/esm2022/lib/components/interaction/popover/index.js +4 -0
  215. package/esm2022/lib/components/interaction/popover/index.js.map +1 -0
  216. package/esm2022/lib/components/interaction/popover/model/popover-position.js +145 -0
  217. package/esm2022/lib/components/interaction/popover/model/popover-position.js.map +1 -0
  218. package/esm2022/lib/components/interaction/popover/model/popover.types.js +1 -0
  219. package/esm2022/lib/components/interaction/popover/model/popover.types.js.map +1 -0
  220. package/esm2022/lib/components/interaction/popover/token/popover.tokens.js +3 -0
  221. package/esm2022/lib/components/interaction/popover/token/popover.tokens.js.map +1 -0
  222. package/esm2022/lib/components/interaction/tooltip/component/tooltip-panel.component.js +23 -0
  223. package/esm2022/lib/components/interaction/tooltip/component/tooltip-panel.component.js.map +1 -0
  224. package/esm2022/lib/components/interaction/tooltip/directive/tooltip.directive.js +405 -0
  225. package/esm2022/lib/components/interaction/tooltip/directive/tooltip.directive.js.map +1 -0
  226. package/esm2022/lib/components/interaction/tooltip/index.js +3 -0
  227. package/esm2022/lib/components/interaction/tooltip/index.js.map +1 -0
  228. package/esm2022/lib/components/interaction/tooltip/model/tooltip-position.js +209 -0
  229. package/esm2022/lib/components/interaction/tooltip/model/tooltip-position.js.map +1 -0
  230. package/esm2022/lib/components/interaction/tooltip/model/tooltip.types.js +1 -0
  231. package/esm2022/lib/components/interaction/tooltip/model/tooltip.types.js.map +1 -0
  232. package/esm2022/lib/components/interaction/tooltip/token/tooltip.tokens.js +3 -0
  233. package/esm2022/lib/components/interaction/tooltip/token/tooltip.tokens.js.map +1 -0
  234. package/esm2022/lib/components/navigation/editable-tabs/component/editable-tabs.component.js +323 -0
  235. package/esm2022/lib/components/navigation/editable-tabs/component/editable-tabs.component.js.map +1 -0
  236. package/esm2022/lib/components/navigation/editable-tabs/editable-tab/editable-tab.component.js +34 -0
  237. package/esm2022/lib/components/navigation/editable-tabs/editable-tab/editable-tab.component.js.map +1 -0
  238. package/esm2022/lib/components/navigation/editable-tabs/model/editable-tabs.types.js +1 -0
  239. package/esm2022/lib/components/navigation/editable-tabs/model/editable-tabs.types.js.map +1 -0
  240. package/esm2022/lib/components/navigation/segmented-control/component/segmented-control.component.js +242 -0
  241. package/esm2022/lib/components/navigation/segmented-control/component/segmented-control.component.js.map +1 -0
  242. package/esm2022/lib/components/navigation/segmented-control/item/segmented-item.component.js +197 -0
  243. package/esm2022/lib/components/navigation/segmented-control/item/segmented-item.component.js.map +1 -0
  244. package/esm2022/lib/components/navigation/segmented-control/model/segmented-control.types.js +1 -0
  245. package/esm2022/lib/components/navigation/segmented-control/model/segmented-control.types.js.map +1 -0
  246. package/esm2022/lib/components/navigation/segmented-control/token/segmented-control.tokens.js +3 -0
  247. package/esm2022/lib/components/navigation/segmented-control/token/segmented-control.tokens.js.map +1 -0
  248. package/esm2022/lib/components/navigation/stepper/actions/stepper-actions.component.js +15 -0
  249. package/esm2022/lib/components/navigation/stepper/actions/stepper-actions.component.js.map +1 -0
  250. package/esm2022/lib/components/navigation/stepper/component/stepper.component.js +99 -0
  251. package/esm2022/lib/components/navigation/stepper/component/stepper.component.js.map +1 -0
  252. package/esm2022/lib/components/navigation/stepper/content/stepper-content.component.js +13 -0
  253. package/esm2022/lib/components/navigation/stepper/content/stepper-content.component.js.map +1 -0
  254. package/esm2022/lib/components/navigation/stepper/model/stepper.types.js +1 -0
  255. package/esm2022/lib/components/navigation/stepper/model/stepper.types.js.map +1 -0
  256. package/esm2022/lib/components/navigation/stepper/step/step.component.js +91 -0
  257. package/esm2022/lib/components/navigation/stepper/step/step.component.js.map +1 -0
  258. package/esm2022/lib/components/navigation/stepper/token/stepper.tokens.js +3 -0
  259. package/esm2022/lib/components/navigation/stepper/token/stepper.tokens.js.map +1 -0
  260. package/esm2022/lib/components/navigation/tabs/component/tabs.component.js +169 -0
  261. package/esm2022/lib/components/navigation/tabs/component/tabs.component.js.map +1 -0
  262. package/esm2022/lib/components/navigation/tabs/index.js +5 -0
  263. package/esm2022/lib/components/navigation/tabs/index.js.map +1 -0
  264. package/esm2022/lib/components/navigation/tabs/model/tabs.types.js +1 -0
  265. package/esm2022/lib/components/navigation/tabs/model/tabs.types.js.map +1 -0
  266. package/esm2022/lib/components/navigation/tabs/tab/tab.component.js +195 -0
  267. package/esm2022/lib/components/navigation/tabs/tab/tab.component.js.map +1 -0
  268. package/esm2022/lib/components/navigation/tabs/tab-panel/tab-panel.component.js +55 -0
  269. package/esm2022/lib/components/navigation/tabs/tab-panel/tab-panel.component.js.map +1 -0
  270. package/esm2022/lib/components/navigation/tabs/token/tabs.tokens.js +3 -0
  271. package/esm2022/lib/components/navigation/tabs/token/tabs.tokens.js.map +1 -0
  272. package/esm2022/lib/components/overlay/dialog/component/dialog.component.js +49 -0
  273. package/esm2022/lib/components/overlay/dialog/component/dialog.component.js.map +1 -0
  274. package/esm2022/lib/components/overlay/dialog/components/dialog-actions.component.js +37 -0
  275. package/esm2022/lib/components/overlay/dialog/components/dialog-actions.component.js.map +1 -0
  276. package/esm2022/lib/components/overlay/dialog/components/dialog-content.component.js +13 -0
  277. package/esm2022/lib/components/overlay/dialog/components/dialog-content.component.js.map +1 -0
  278. package/esm2022/lib/components/overlay/dialog/components/dialog-header.component.js +32 -0
  279. package/esm2022/lib/components/overlay/dialog/components/dialog-header.component.js.map +1 -0
  280. package/esm2022/lib/components/overlay/dialog/container/dialog-container.component.js +142 -0
  281. package/esm2022/lib/components/overlay/dialog/container/dialog-container.component.js.map +1 -0
  282. package/esm2022/lib/components/overlay/dialog/flow/dialog-flow.component.js +56 -0
  283. package/esm2022/lib/components/overlay/dialog/flow/dialog-flow.component.js.map +1 -0
  284. package/esm2022/lib/components/overlay/dialog/flow/dialog-step.component.js +20 -0
  285. package/esm2022/lib/components/overlay/dialog/flow/dialog-step.component.js.map +1 -0
  286. package/esm2022/lib/components/overlay/dialog/model/dialog.types.js +1 -0
  287. package/esm2022/lib/components/overlay/dialog/model/dialog.types.js.map +1 -0
  288. package/esm2022/lib/components/overlay/dialog/provider/provide-solaris-dialog.js +13 -0
  289. package/esm2022/lib/components/overlay/dialog/provider/provide-solaris-dialog.js.map +1 -0
  290. package/esm2022/lib/components/overlay/dialog/service/dialog-ref.js +23 -0
  291. package/esm2022/lib/components/overlay/dialog/service/dialog-ref.js.map +1 -0
  292. package/esm2022/lib/components/overlay/dialog/service/dialog.service.js +111 -0
  293. package/esm2022/lib/components/overlay/dialog/service/dialog.service.js.map +1 -0
  294. package/esm2022/lib/components/overlay/dialog/token/dialog-data.token.js +4 -0
  295. package/esm2022/lib/components/overlay/dialog/token/dialog-data.token.js.map +1 -0
  296. package/esm2022/lib/components/overlay/dialog/token/dialog.tokens.js +15 -0
  297. package/esm2022/lib/components/overlay/dialog/token/dialog.tokens.js.map +1 -0
  298. package/esm2022/lib/services/accessibility/directives/visually-hidden.directive.js +25 -0
  299. package/esm2022/lib/services/accessibility/directives/visually-hidden.directive.js.map +1 -0
  300. package/esm2022/lib/services/accessibility/model/solaris-accessibility-config.interface.js +1 -0
  301. package/esm2022/lib/services/accessibility/model/solaris-accessibility-config.interface.js.map +1 -0
  302. package/esm2022/lib/services/accessibility/model/solaris-accessibility.types.js +1 -0
  303. package/esm2022/lib/services/accessibility/model/solaris-accessibility.types.js.map +1 -0
  304. package/esm2022/lib/services/accessibility/provider/provide-solaris-accessibility.js +10 -0
  305. package/esm2022/lib/services/accessibility/provider/provide-solaris-accessibility.js.map +1 -0
  306. package/esm2022/lib/services/accessibility/service/solaris-accessibility.service.js +60 -0
  307. package/esm2022/lib/services/accessibility/service/solaris-accessibility.service.js.map +1 -0
  308. package/esm2022/lib/services/accessibility/testing/solaris-accessibility-testing.provider.js +10 -0
  309. package/esm2022/lib/services/accessibility/testing/solaris-accessibility-testing.provider.js.map +1 -0
  310. package/esm2022/lib/services/accessibility/token/solaris-accessibility.tokens.js +3 -0
  311. package/esm2022/lib/services/accessibility/token/solaris-accessibility.tokens.js.map +1 -0
  312. package/esm2022/lib/services/icon/icons/groups/actions.js +242 -0
  313. package/esm2022/lib/services/icon/icons/groups/actions.js.map +1 -0
  314. package/esm2022/lib/services/icon/icons/groups/data.js +129 -0
  315. package/esm2022/lib/services/icon/icons/groups/data.js.map +1 -0
  316. package/esm2022/lib/services/icon/icons/groups/layout.js +50 -0
  317. package/esm2022/lib/services/icon/icons/groups/layout.js.map +1 -0
  318. package/esm2022/lib/services/icon/icons/groups/navigation.js +354 -0
  319. package/esm2022/lib/services/icon/icons/groups/navigation.js.map +1 -0
  320. package/esm2022/lib/services/icon/icons/groups/status.js +70 -0
  321. package/esm2022/lib/services/icon/icons/groups/status.js.map +1 -0
  322. package/esm2022/lib/services/icon/icons/groups/theme.js +49 -0
  323. package/esm2022/lib/services/icon/icons/groups/theme.js.map +1 -0
  324. package/esm2022/lib/services/icon/icons/index.js +2 -0
  325. package/esm2022/lib/services/icon/icons/index.js.map +1 -0
  326. package/esm2022/lib/services/icon/icons/solaris-built-in-icons.js +15 -0
  327. package/esm2022/lib/services/icon/icons/solaris-built-in-icons.js.map +1 -0
  328. package/esm2022/lib/services/icon/index.js +5 -0
  329. package/esm2022/lib/services/icon/index.js.map +1 -0
  330. package/esm2022/lib/services/icon/model/solaris-icon-definition.interface.js +1 -0
  331. package/esm2022/lib/services/icon/model/solaris-icon-definition.interface.js.map +1 -0
  332. package/esm2022/lib/services/icon/model/solaris-icon.types.js +1 -0
  333. package/esm2022/lib/services/icon/model/solaris-icon.types.js.map +1 -0
  334. package/esm2022/lib/services/icon/provider/provide-solaris-icons.js +10 -0
  335. package/esm2022/lib/services/icon/provider/provide-solaris-icons.js.map +1 -0
  336. package/esm2022/lib/services/icon/service/solaris-icon-registry.service.js +43 -0
  337. package/esm2022/lib/services/icon/service/solaris-icon-registry.service.js.map +1 -0
  338. package/esm2022/lib/services/icon/token/solaris-icon.tokens.js +3 -0
  339. package/esm2022/lib/services/icon/token/solaris-icon.tokens.js.map +1 -0
  340. package/esm2022/lib/services/theme/model/solaris-theme-config.interface.js +1 -0
  341. package/esm2022/lib/services/theme/model/solaris-theme-config.interface.js.map +1 -0
  342. package/esm2022/lib/services/theme/model/solaris-theme.types.js +1 -0
  343. package/esm2022/lib/services/theme/model/solaris-theme.types.js.map +1 -0
  344. package/esm2022/lib/services/theme/provider/provide-solaris-theme.js +10 -0
  345. package/esm2022/lib/services/theme/provider/provide-solaris-theme.js.map +1 -0
  346. package/esm2022/lib/services/theme/service/solaris-theme.service.js +22 -0
  347. package/esm2022/lib/services/theme/service/solaris-theme.service.js.map +1 -0
  348. package/esm2022/lib/services/theme/testing/solaris-theme-testing.provider.js +10 -0
  349. package/esm2022/lib/services/theme/testing/solaris-theme-testing.provider.js.map +1 -0
  350. package/esm2022/lib/services/theme/token/solaris-theme.tokens.js +3 -0
  351. package/esm2022/lib/services/theme/token/solaris-theme.tokens.js.map +1 -0
  352. package/esm2022/lib/services/translation/index.js +6 -0
  353. package/esm2022/lib/services/translation/index.js.map +1 -0
  354. package/esm2022/lib/services/translation/model/solaris-locale.types.js +1 -0
  355. package/esm2022/lib/services/translation/model/solaris-locale.types.js.map +1 -0
  356. package/esm2022/lib/services/translation/model/solaris-translate-config.interface.js +1 -0
  357. package/esm2022/lib/services/translation/model/solaris-translate-config.interface.js.map +1 -0
  358. package/esm2022/lib/services/translation/model/solaris-translate-defaults.js +96 -0
  359. package/esm2022/lib/services/translation/model/solaris-translate-defaults.js.map +1 -0
  360. package/esm2022/lib/services/translation/model/solaris-translation.types.js +1 -0
  361. package/esm2022/lib/services/translation/model/solaris-translation.types.js.map +1 -0
  362. package/esm2022/lib/services/translation/pipe/solaris-translate.pipe.js +20 -0
  363. package/esm2022/lib/services/translation/pipe/solaris-translate.pipe.js.map +1 -0
  364. package/esm2022/lib/services/translation/provider/provide-solaris-translate.js +10 -0
  365. package/esm2022/lib/services/translation/provider/provide-solaris-translate.js.map +1 -0
  366. package/esm2022/lib/services/translation/service/solaris-translate.service.js +87 -0
  367. package/esm2022/lib/services/translation/service/solaris-translate.service.js.map +1 -0
  368. package/esm2022/lib/services/translation/testing/solaris-translate-testing.provider.js +32 -0
  369. package/esm2022/lib/services/translation/testing/solaris-translate-testing.provider.js.map +1 -0
  370. package/esm2022/lib/services/translation/token/solaris-translate.tokens.js +3 -0
  371. package/esm2022/lib/services/translation/token/solaris-translate.tokens.js.map +1 -0
  372. package/esm2022/lib/testing/provide-solaris-testing.js +11 -0
  373. package/esm2022/lib/testing/provide-solaris-testing.js.map +1 -0
  374. package/esm2022/lib/testing/solaris-test-utilities.js +12 -0
  375. package/esm2022/lib/testing/solaris-test-utilities.js.map +1 -0
  376. package/index.d.ts +197 -0
  377. package/lib/components/actions/button/directives/button-icon.directive.d.ts +5 -0
  378. package/lib/components/actions/button/directives/button.directive.d.ts +22 -0
  379. package/lib/components/actions/button/index.d.ts +3 -0
  380. package/lib/components/actions/button/model/button.types.d.ts +5 -0
  381. package/lib/components/actions/button-group/component/button-group.component.d.ts +10 -0
  382. package/lib/components/actions/button-group/model/button-group.types.d.ts +2 -0
  383. package/lib/components/actions/icon-button/directives/icon-button-badge.directive.d.ts +5 -0
  384. package/lib/components/actions/icon-button/directives/icon-button.directive.d.ts +21 -0
  385. package/lib/components/actions/icon-button/model/icon-button.types.d.ts +5 -0
  386. package/lib/components/data-display/badge/component/badge.component.d.ts +12 -0
  387. package/lib/components/data-display/badge/directives/badge-icon.directive.d.ts +5 -0
  388. package/lib/components/data-display/badge/index.d.ts +3 -0
  389. package/lib/components/data-display/badge/model/badge.types.d.ts +6 -0
  390. package/lib/components/data-display/card/component/card.component.d.ts +10 -0
  391. package/lib/components/data-display/card/directives/card-actions.directive.d.ts +5 -0
  392. package/lib/components/data-display/card/directives/card-content.directive.d.ts +5 -0
  393. package/lib/components/data-display/card/directives/card-description.directive.d.ts +5 -0
  394. package/lib/components/data-display/card/directives/card-footer.directive.d.ts +6 -0
  395. package/lib/components/data-display/card/directives/card-header.directive.d.ts +5 -0
  396. package/lib/components/data-display/card/directives/card-media.directive.d.ts +5 -0
  397. package/lib/components/data-display/card/directives/card-title.directive.d.ts +5 -0
  398. package/lib/components/data-display/card/model/card.types.d.ts +4 -0
  399. package/lib/components/data-display/divider/component/divider.component.d.ts +17 -0
  400. package/lib/components/data-display/divider/index.d.ts +2 -0
  401. package/lib/components/data-display/divider/model/divider.types.d.ts +5 -0
  402. package/lib/components/feedback/alert/component/alert-actions.component.d.ts +5 -0
  403. package/lib/components/feedback/alert/component/alert.component.d.ts +26 -0
  404. package/lib/components/feedback/alert/directives/alert-description.directive.d.ts +5 -0
  405. package/lib/components/feedback/alert/directives/alert-title.directive.d.ts +5 -0
  406. package/lib/components/feedback/alert/model/alert.types.d.ts +5 -0
  407. package/lib/components/feedback/skeleton/component/skeleton.component.d.ts +17 -0
  408. package/lib/components/feedback/skeleton/model/skeleton.types.d.ts +5 -0
  409. package/lib/components/feedback/toast/component/toast.component.d.ts +62 -0
  410. package/lib/components/feedback/toast/container/toast-container.component.d.ts +10 -0
  411. package/lib/components/feedback/toast/model/toast.types.d.ts +106 -0
  412. package/lib/components/feedback/toast/provider/provide-solaris-toast.d.ts +3 -0
  413. package/lib/components/feedback/toast/service/toast.service.d.ts +36 -0
  414. package/lib/components/feedback/toast/token/toast.tokens.d.ts +5 -0
  415. package/lib/components/forms/checkbox/component/checkbox.component.d.ts +70 -0
  416. package/lib/components/forms/checkbox/model/checkbox.types.d.ts +5 -0
  417. package/lib/components/forms/checkbox-group/component/checkbox-group.component.d.ts +123 -0
  418. package/lib/components/forms/checkbox-group/model/checkbox-group.types.d.ts +5 -0
  419. package/lib/components/forms/email-field/component/email-field.component.d.ts +67 -0
  420. package/lib/components/forms/email-field/model/email-field.types.d.ts +6 -0
  421. package/lib/components/forms/email-field/validators/email-field.validators.d.ts +8 -0
  422. package/lib/components/forms/form-field/component/form-error.component.d.ts +5 -0
  423. package/lib/components/forms/form-field/component/form-field.component.d.ts +96 -0
  424. package/lib/components/forms/form-field/component/form-hint.component.d.ts +5 -0
  425. package/lib/components/forms/form-field/component/form-label.component.d.ts +5 -0
  426. package/lib/components/forms/form-field/directives/form-field-trigger.directive.d.ts +5 -0
  427. package/lib/components/forms/form-field/directives/form-prefix.directive.d.ts +5 -0
  428. package/lib/components/forms/form-field/directives/form-suffix.directive.d.ts +5 -0
  429. package/lib/components/forms/form-field/index.d.ts +8 -0
  430. package/lib/components/forms/form-field/model/form-control.contract.d.ts +11 -0
  431. package/lib/components/forms/form-field/model/form-field.types.d.ts +5 -0
  432. package/lib/components/forms/input/directives/input.directive.d.ts +37 -0
  433. package/lib/components/forms/input/index.d.ts +2 -0
  434. package/lib/components/forms/input/model/input.defaults.d.ts +2 -0
  435. package/lib/components/forms/input/model/input.types.d.ts +4 -0
  436. package/lib/components/forms/multi-select/component/multi-select.component.d.ts +199 -0
  437. package/lib/components/forms/multi-select/model/multi-select.types.d.ts +5 -0
  438. package/lib/components/forms/option/component/option.component.d.ts +58 -0
  439. package/lib/components/forms/option/directives/option-slots.directive.d.ts +21 -0
  440. package/lib/components/forms/option/index.d.ts +3 -0
  441. package/lib/components/forms/option/model/option.types.d.ts +3 -0
  442. package/lib/components/forms/option-group/component/option-group.component.d.ts +32 -0
  443. package/lib/components/forms/option-group/index.d.ts +2 -0
  444. package/lib/components/forms/option-group/model/option-group.types.d.ts +2 -0
  445. package/lib/components/forms/password-field/component/password-field.component.d.ts +81 -0
  446. package/lib/components/forms/password-field/model/password-field-constants.d.ts +4 -0
  447. package/lib/components/forms/password-field/model/password-field.types.d.ts +6 -0
  448. package/lib/components/forms/password-field/model/password-policy.types.d.ts +10 -0
  449. package/lib/components/forms/password-field/model/password-strength.d.ts +2 -0
  450. package/lib/components/forms/password-field/validators/password.validator.d.ts +3 -0
  451. package/lib/components/forms/radio/component/radio.component.d.ts +68 -0
  452. package/lib/components/forms/radio/model/radio.types.d.ts +4 -0
  453. package/lib/components/forms/radio-group/component/radio-group.component.d.ts +86 -0
  454. package/lib/components/forms/radio-group/model/radio-group.token.d.ts +2 -0
  455. package/lib/components/forms/radio-group/model/radio-group.types.d.ts +5 -0
  456. package/lib/components/forms/select/component/select.component.d.ts +158 -0
  457. package/lib/components/forms/select/model/select.types.d.ts +4 -0
  458. package/lib/components/forms/switch/component/switch.component.d.ts +66 -0
  459. package/lib/components/forms/switch/index.d.ts +2 -0
  460. package/lib/components/forms/switch/model/switch.types.d.ts +4 -0
  461. package/lib/components/forms/switch-group/component/switch-group.component.d.ts +91 -0
  462. package/lib/components/forms/switch-group/model/switch-group.types.d.ts +5 -0
  463. package/lib/components/forms/textarea/directives/textarea.directive.d.ts +37 -0
  464. package/lib/components/forms/textarea/model/textarea.types.d.ts +5 -0
  465. package/lib/components/icon/component/solaris-icon.component.d.ts +13 -0
  466. package/lib/components/icon/index.d.ts +1 -0
  467. package/lib/components/interaction/dropdown-menu/component/dropdown-menu-group.component.d.ts +10 -0
  468. package/lib/components/interaction/dropdown-menu/component/dropdown-menu-item.component.d.ts +28 -0
  469. package/lib/components/interaction/dropdown-menu/component/dropdown-menu-label.component.d.ts +7 -0
  470. package/lib/components/interaction/dropdown-menu/component/dropdown-menu.component.d.ts +21 -0
  471. package/lib/components/interaction/dropdown-menu/component/dropdown-submenu-trigger.component.d.ts +21 -0
  472. package/lib/components/interaction/dropdown-menu/component/dropdown-submenu.component.d.ts +68 -0
  473. package/lib/components/interaction/dropdown-menu/directives/dropdown-menu-trigger.directive.d.ts +61 -0
  474. package/lib/components/interaction/dropdown-menu/index.d.ts +9 -0
  475. package/lib/components/interaction/dropdown-menu/model/dropdown-menu-navigation.d.ts +8 -0
  476. package/lib/components/interaction/dropdown-menu/model/dropdown-menu.types.d.ts +11 -0
  477. package/lib/components/interaction/dropdown-menu/model/dropdown-submenu.types.d.ts +2 -0
  478. package/lib/components/interaction/popover/component/popover-panel.component.d.ts +10 -0
  479. package/lib/components/interaction/popover/directives/popover-trigger.directive.d.ts +65 -0
  480. package/lib/components/interaction/popover/directives/popover.directive.d.ts +7 -0
  481. package/lib/components/interaction/popover/index.d.ts +4 -0
  482. package/lib/components/interaction/popover/model/popover-position.d.ts +4 -0
  483. package/lib/components/interaction/popover/model/popover.types.d.ts +7 -0
  484. package/lib/components/interaction/popover/token/popover.tokens.d.ts +12 -0
  485. package/lib/components/interaction/tooltip/component/tooltip-panel.component.d.ts +9 -0
  486. package/lib/components/interaction/tooltip/directive/tooltip.directive.d.ts +80 -0
  487. package/lib/components/interaction/tooltip/index.d.ts +3 -0
  488. package/lib/components/interaction/tooltip/model/tooltip-position.d.ts +5 -0
  489. package/lib/components/interaction/tooltip/model/tooltip.types.d.ts +22 -0
  490. package/lib/components/interaction/tooltip/token/tooltip.tokens.d.ts +21 -0
  491. package/lib/components/navigation/editable-tabs/component/editable-tabs.component.d.ts +69 -0
  492. package/lib/components/navigation/editable-tabs/editable-tab/editable-tab.component.d.ts +20 -0
  493. package/lib/components/navigation/editable-tabs/model/editable-tabs.types.d.ts +60 -0
  494. package/lib/components/navigation/segmented-control/component/segmented-control.component.d.ts +64 -0
  495. package/lib/components/navigation/segmented-control/item/segmented-item.component.d.ts +35 -0
  496. package/lib/components/navigation/segmented-control/model/segmented-control.types.d.ts +12 -0
  497. package/lib/components/navigation/segmented-control/token/segmented-control.tokens.d.ts +22 -0
  498. package/lib/components/navigation/stepper/actions/stepper-actions.component.d.ts +7 -0
  499. package/lib/components/navigation/stepper/component/stepper.component.d.ts +36 -0
  500. package/lib/components/navigation/stepper/content/stepper-content.component.d.ts +5 -0
  501. package/lib/components/navigation/stepper/model/stepper.types.d.ts +15 -0
  502. package/lib/components/navigation/stepper/step/step.component.d.ts +27 -0
  503. package/lib/components/navigation/stepper/token/stepper.tokens.d.ts +13 -0
  504. package/lib/components/navigation/tabs/component/tabs.component.d.ts +47 -0
  505. package/lib/components/navigation/tabs/index.d.ts +6 -0
  506. package/lib/components/navigation/tabs/model/tabs.types.d.ts +17 -0
  507. package/lib/components/navigation/tabs/tab/tab.component.d.ts +38 -0
  508. package/lib/components/navigation/tabs/tab-panel/tab-panel.component.d.ts +15 -0
  509. package/lib/components/navigation/tabs/token/tabs.tokens.d.ts +19 -0
  510. package/lib/components/overlay/dialog/component/dialog.component.d.ts +29 -0
  511. package/lib/components/overlay/dialog/components/dialog-actions.component.d.ts +12 -0
  512. package/lib/components/overlay/dialog/components/dialog-content.component.d.ts +5 -0
  513. package/lib/components/overlay/dialog/components/dialog-header.component.d.ts +19 -0
  514. package/lib/components/overlay/dialog/container/dialog-container.component.d.ts +32 -0
  515. package/lib/components/overlay/dialog/flow/dialog-flow.component.d.ts +19 -0
  516. package/lib/components/overlay/dialog/flow/dialog-step.component.d.ts +7 -0
  517. package/lib/components/overlay/dialog/model/dialog.types.d.ts +87 -0
  518. package/lib/components/overlay/dialog/provider/provide-solaris-dialog.d.ts +3 -0
  519. package/lib/components/overlay/dialog/service/dialog-ref.d.ts +11 -0
  520. package/lib/components/overlay/dialog/service/dialog.service.d.ts +20 -0
  521. package/lib/components/overlay/dialog/token/dialog-data.token.d.ts +4 -0
  522. package/lib/components/overlay/dialog/token/dialog.tokens.d.ts +4 -0
  523. package/lib/services/accessibility/directives/visually-hidden.directive.d.ts +5 -0
  524. package/lib/services/accessibility/model/solaris-accessibility-config.interface.d.ts +4 -0
  525. package/lib/services/accessibility/model/solaris-accessibility.types.d.ts +5 -0
  526. package/lib/services/accessibility/provider/provide-solaris-accessibility.d.ts +3 -0
  527. package/lib/services/accessibility/service/solaris-accessibility.service.d.ts +15 -0
  528. package/lib/services/accessibility/testing/solaris-accessibility-testing.provider.d.ts +3 -0
  529. package/lib/services/accessibility/token/solaris-accessibility.tokens.d.ts +3 -0
  530. package/lib/services/icon/icons/groups/actions.d.ts +2 -0
  531. package/lib/services/icon/icons/groups/data.d.ts +2 -0
  532. package/lib/services/icon/icons/groups/layout.d.ts +2 -0
  533. package/lib/services/icon/icons/groups/navigation.d.ts +2 -0
  534. package/lib/services/icon/icons/groups/status.d.ts +2 -0
  535. package/lib/services/icon/icons/groups/theme.d.ts +2 -0
  536. package/lib/services/icon/icons/index.d.ts +1 -0
  537. package/lib/services/icon/icons/solaris-built-in-icons.d.ts +2 -0
  538. package/lib/services/icon/index.d.ts +8 -0
  539. package/lib/services/icon/model/solaris-icon-definition.interface.d.ts +45 -0
  540. package/lib/services/icon/model/solaris-icon.types.d.ts +4 -0
  541. package/lib/services/icon/provider/provide-solaris-icons.d.ts +3 -0
  542. package/lib/services/icon/service/solaris-icon-registry.service.d.ts +12 -0
  543. package/lib/services/icon/token/solaris-icon.tokens.d.ts +6 -0
  544. package/lib/services/theme/model/solaris-theme-config.interface.d.ts +5 -0
  545. package/lib/services/theme/model/solaris-theme.types.d.ts +3 -0
  546. package/lib/services/theme/provider/provide-solaris-theme.d.ts +3 -0
  547. package/lib/services/theme/service/solaris-theme.service.d.ts +9 -0
  548. package/lib/services/theme/testing/solaris-theme-testing.provider.d.ts +3 -0
  549. package/lib/services/theme/token/solaris-theme.tokens.d.ts +3 -0
  550. package/lib/services/translation/index.d.ts +8 -0
  551. package/lib/services/translation/model/solaris-locale.types.d.ts +4 -0
  552. package/lib/services/translation/model/solaris-translate-config.interface.d.ts +8 -0
  553. package/lib/services/translation/model/solaris-translate-defaults.d.ts +2 -0
  554. package/lib/services/translation/model/solaris-translation.types.d.ts +3 -0
  555. package/lib/services/translation/pipe/solaris-translate.pipe.d.ts +8 -0
  556. package/lib/services/translation/provider/provide-solaris-translate.d.ts +3 -0
  557. package/lib/services/translation/service/solaris-translate.service.d.ts +15 -0
  558. package/lib/services/translation/testing/solaris-translate-testing.provider.d.ts +3 -0
  559. package/lib/services/translation/token/solaris-translate.tokens.d.ts +3 -0
  560. package/lib/testing/provide-solaris-testing.d.ts +10 -0
  561. package/lib/testing/solaris-test-utilities.d.ts +3 -0
  562. package/package.json +9 -5
  563. package/styles/_button.scss +50 -220
  564. package/styles/_core.scss +37 -37
  565. package/styles/_dropdown-menu.scss +72 -0
  566. package/styles/_icon-button.scss +43 -219
  567. package/styles/_index.scss +19 -19
  568. package/styles/_input.scss +255 -0
  569. package/styles/_popover.scss +73 -0
  570. package/styles/_theme.scss +36 -36
  571. package/styles/_toast.scss +9 -0
  572. package/styles/_tooltip.scss +3 -0
  573. package/fesm2022/educarehq-solaris-ui.mjs +0 -1047
  574. package/fesm2022/educarehq-solaris-ui.mjs.map +0 -1
  575. package/types/educarehq-solaris-ui.d.ts +0 -408
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editable-tabs.component.js","sourceRoot":"","sources":["../../../../../../../../../packages/angular/src/lib/components/navigation/editable-tabs/component/editable-tabs.component.ts","../../../../../../../../../packages/angular/src/lib/components/navigation/editable-tabs/component/editable-tabs.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n input,\n output,\n model,\n computed,\n signal,\n viewChildren,\n inject,\n ChangeDetectionStrategy,\n TemplateRef,\n NgZone,\n effect,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport { SolarisTranslateService } from '../../../../services/translation';\nimport {\n SolarisTabPanelComponent,\n SolarisTabsComponent,\n SolarisTabComponent,\n} from '../../tabs';\nimport {\n SolarisDropdownMenuTriggerDirective,\n SolarisDropdownMenuItemComponent,\n SolarisDropdownMenuComponent,\n} from '../../../interaction/dropdown-menu';\nimport { SolarisDividerComponent } from '../../../data-display/divider';\nimport { SolarisIconComponent } from '../../../icon';\n\nimport type {\n SolarisEditableTabData,\n SolarisEditableTabAction,\n SolarisEditableTabRenameEvent,\n SolarisEditableTabRemoveEvent,\n SolarisEditableTabMoveEvent,\n SolarisEditableTabDefaultChangeEvent,\n SolarisEditableTabActionEvent,\n SolarisEditableTabMoveDirection,\n SolarisEditableTabsOrientation,\n SolarisEditableTabsAppearance,\n SolarisEditableTabsSize,\n SolarisEditableTabsDensity,\n SolarisEditableTabsActivationMode,\n SolarisEditableTabsContentTransition,\n SolarisEditableTabsShowActions,\n SolarisEditableTabsRenameOnBlur,\n} from '../model/editable-tabs.types';\n\n@Component({\n selector: 'solaris-editable-tabs',\n standalone: true,\n imports: [\n SolarisTabsComponent,\n SolarisTabComponent,\n SolarisTabPanelComponent,\n SolarisIconComponent,\n SolarisDropdownMenuComponent,\n SolarisDropdownMenuItemComponent,\n SolarisDropdownMenuTriggerDirective,\n SolarisDividerComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './editable-tabs.component.html',\n styleUrls: ['./editable-tabs.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-editable-tabs',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-size]': 'size()',\n '[attr.data-density]': 'density()',\n '[attr.data-show-actions]': 'showActions()',\n },\n})\nexport class SolarisEditableTabsComponent {\n private readonly translateService = inject(SolarisTranslateService, {\n optional: true,\n });\n private readonly ngZone = inject(NgZone);\n\n readonly value = model<unknown>(undefined);\n readonly defaultValue = input<unknown>(undefined);\n readonly orientation = input<SolarisEditableTabsOrientation>('horizontal');\n readonly appearance = input<SolarisEditableTabsAppearance>('underline');\n readonly size = input<SolarisEditableTabsSize>('md');\n readonly density = input<SolarisEditableTabsDensity>('comfortable');\n readonly activationMode =\n input<SolarisEditableTabsActivationMode>('automatic');\n readonly contentTransition =\n input<SolarisEditableTabsContentTransition>('slide');\n\n readonly tabs = input.required<SolarisEditableTabData[]>();\n\n readonly editable = input<boolean>(true);\n readonly renamable = input<boolean>(true);\n readonly removable = input<boolean>(true);\n readonly movable = input<boolean>(true);\n readonly defaultable = input<boolean>(true);\n readonly showActions = input<SolarisEditableTabsShowActions>('focus-hover');\n readonly renameOnBlur = input<SolarisEditableTabsRenameOnBlur>('confirm');\n readonly minTabs = input<number>(1);\n readonly allowEmpty = input<boolean>(false);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly ariaLabelKey = input<string | undefined>(undefined);\n\n readonly tabContentMap = input<Record<string, TemplateRef<void>> | undefined>(\n undefined,\n );\n\n readonly valueChange = output<unknown>();\n readonly tabRenameRequested = output<SolarisEditableTabRenameEvent>();\n readonly tabRename = output<SolarisEditableTabRenameEvent>();\n readonly tabRemoveRequested = output<SolarisEditableTabRemoveEvent>();\n readonly tabRemove = output<SolarisEditableTabRemoveEvent>();\n readonly tabMoveRequested = output<SolarisEditableTabMoveEvent>();\n readonly tabMove = output<SolarisEditableTabMoveEvent>();\n readonly defaultTabChange = output<SolarisEditableTabDefaultChangeEvent>();\n readonly tabAction = output<SolarisEditableTabActionEvent>();\n\n readonly menuComponents = viewChildren(SolarisDropdownMenuComponent);\n readonly tabMenuRefs = computed(() => {\n this.tabs();\n return this.menuComponents();\n });\n\n protected readonly activeMenuIndex = signal<number | null>(null);\n protected readonly renamingTabId = signal<unknown | null>(null);\n protected readonly renameValue = signal<string>('');\n protected readonly defaultTabValue = signal<unknown>(undefined);\n\n protected readonly resolvedAriaLabel = computed(() => {\n if (this.ariaLabel()) return this.ariaLabel();\n const key = this.ariaLabelKey();\n if (key && this.translateService) {\n return this.translateService.translate(key);\n }\n return key ?? 'Editable tabs';\n });\n\n constructor() {\n effect(() => {\n const defaultValue = this.defaultValue();\n const currentValue = this.value();\n if (currentValue === undefined && defaultValue !== undefined) {\n this.value.set(defaultValue);\n }\n });\n }\n\n protected onValueChange(newValue: unknown): void {\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n }\n\n protected hasActions(tab: SolarisEditableTabData): boolean {\n if (!this.editable()) return false;\n if (tab.disabled) return false;\n return (\n this.canRename(tab) ||\n this.canSetDefault(tab) ||\n this.canMoveLeft(tab) ||\n this.canMoveRight(tab) ||\n this.canRemove(tab) ||\n (tab.customActions?.length ?? 0) > 0\n );\n }\n\n protected canRename(tab: SolarisEditableTabData): boolean {\n if (!this.renamable()) return false;\n if (tab.locked && tab.renamable !== true) return false;\n return tab.renamable !== false;\n }\n\n protected canRemove(tab: SolarisEditableTabData): boolean {\n if (!this.removable()) return false;\n if (tab.locked && tab.removable !== true) return false;\n if (tab.removable === false) return false;\n if (tab.disabled) return false;\n return !(!this.allowEmpty() && this.tabs().length <= this.minTabs());\n }\n\n protected canMoveLeft(tab: SolarisEditableTabData): boolean {\n if (!this.movable()) return false;\n if (tab.locked && tab.movable !== true) return false;\n if (tab.movable === false) return false;\n if (tab.disabled) return false;\n const idx = this.tabs().indexOf(tab);\n if (idx <= 0) return false;\n for (let i = idx - 1; i >= 0; i--) {\n if (!this.tabs()[i].locked) return true;\n }\n return false;\n }\n\n protected canMoveRight(tab: SolarisEditableTabData): boolean {\n if (!this.movable()) return false;\n if (tab.locked && tab.movable !== true) return false;\n if (tab.movable === false) return false;\n if (tab.disabled) return false;\n const idx = this.tabs().indexOf(tab);\n if (idx < 0 || idx >= this.tabs().length - 1) return false;\n for (let i = idx + 1; i < this.tabs().length; i++) {\n if (!this.tabs()[i].locked) return true;\n }\n return false;\n }\n\n protected canSetDefault(tab: SolarisEditableTabData): boolean {\n if (!this.defaultable()) return false;\n if (tab.locked && tab.defaultable !== true) return false;\n if (tab.defaultable === false) return false;\n return !tab.disabled;\n }\n\n protected startRename(tab: SolarisEditableTabData): void {\n this.activeMenuIndex.set(null);\n this.renamingTabId.set(tab.value);\n this.renameValue.set(tab.label ?? '');\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n // SECURITY_EXCEPTION: document.querySelector required to find rename input. SSR-safe via guard.\n const input = document.querySelector(\n `.solaris-editable-tabs__rename-input`,\n ) as HTMLInputElement | null;\n if (input) {\n input.focus();\n input.select();\n }\n });\n });\n }\n\n protected commitRename(tab: SolarisEditableTabData): void {\n const previousLabel = tab.label ?? '';\n const nextLabel = this.renameValue().trim();\n\n if (nextLabel === '') {\n this.renamingTabId.set(null);\n return;\n }\n\n if (nextLabel === previousLabel) {\n this.renamingTabId.set(null);\n return;\n }\n\n const event: SolarisEditableTabRenameEvent = {\n value: tab.value,\n previousLabel,\n nextLabel,\n source: 'inline',\n };\n\n this.tabRenameRequested.emit(event);\n this.tabRename.emit(event);\n this.renamingTabId.set(null);\n }\n\n protected cancelRename(): void {\n this.renamingTabId.set(null);\n }\n\n protected onRenameKeydown(\n event: KeyboardEvent,\n tab: SolarisEditableTabData,\n ): void {\n event.stopPropagation();\n if (event.key === 'Enter') {\n event.preventDefault();\n this.commitRename(tab);\n } else if (event.key === 'Escape') {\n event.preventDefault();\n this.cancelRename();\n }\n }\n\n protected onRenameBlur(tab: SolarisEditableTabData): void {\n if (this.renameOnBlur() === 'confirm') {\n this.commitRename(tab);\n } else {\n this.cancelRename();\n }\n }\n\n protected confirmRemove(tab: SolarisEditableTabData, index: number): void {\n this.activeMenuIndex.set(null);\n if (!this.canRemove(tab)) return;\n\n const wasActive = this.value() === tab.value;\n\n const event: SolarisEditableTabRemoveEvent = {\n value: tab.value,\n index,\n wasActive,\n };\n\n this.tabRemoveRequested.emit(event);\n this.tabRemove.emit(event);\n }\n\n protected moveLabel(direction: 'left' | 'right'): string {\n if (this.orientation() === 'vertical') {\n const key =\n direction === 'left'\n ? 'solaris.editableTabs.moveUp'\n : 'solaris.editableTabs.moveDown';\n return (\n this.resolveText(key) ??\n (direction === 'left' ? 'Move up' : 'Move down')\n );\n }\n const key =\n direction === 'left'\n ? 'solaris.editableTabs.moveLeft'\n : 'solaris.editableTabs.moveRight';\n return (\n this.resolveText(key) ??\n (direction === 'left' ? 'Move left' : 'Move right')\n );\n }\n\n protected moveIcon(direction: 'left' | 'right'): string {\n if (this.orientation() === 'vertical') {\n return direction === 'left' ? 'chevron-up' : 'chevron-down';\n }\n return direction === 'left' ? 'chevron-left' : 'chevron-right';\n }\n\n protected moveTab(\n tab: SolarisEditableTabData,\n index: number,\n direction: SolarisEditableTabMoveDirection,\n ): void {\n this.activeMenuIndex.set(null);\n const isPrev = direction === 'left' || direction === 'up';\n const nextIndex = isPrev ? index - 1 : index + 1;\n if (nextIndex < 0 || nextIndex >= this.tabs().length) return;\n if (!this.canMoveLeft(tab) && isPrev) return;\n if (!this.canMoveRight(tab) && !isPrev) return;\n\n const event: SolarisEditableTabMoveEvent = {\n value: tab.value,\n previousIndex: index,\n nextIndex,\n direction,\n };\n\n this.tabMoveRequested.emit(event);\n this.tabMove.emit(event);\n }\n\n protected setAsDefault(tab: SolarisEditableTabData): void {\n this.activeMenuIndex.set(null);\n const previousDefaultValue = this.defaultTabValue();\n this.defaultTabValue.set(tab.value);\n\n const event: SolarisEditableTabDefaultChangeEvent = {\n value: tab.value,\n previousDefaultValue:\n previousDefaultValue !== undefined\n ? (previousDefaultValue as unknown)\n : undefined,\n };\n\n this.defaultTabChange.emit(event);\n }\n\n protected handleCustomAction(\n tab: SolarisEditableTabData,\n action: SolarisEditableTabAction,\n ): void {\n this.activeMenuIndex.set(null);\n const event: SolarisEditableTabActionEvent = {\n tabValue: tab.value,\n actionId: action.id,\n action,\n };\n this.tabAction.emit(event);\n }\n\n protected isRenaming(tab: SolarisEditableTabData): boolean {\n return this.renamingTabId() === tab.value;\n }\n\n protected getContentTemplate(\n tab: SolarisEditableTabData,\n ): TemplateRef<void> | null {\n const contentMap = this.tabContentMap();\n if (contentMap) {\n const key = String(tab.value);\n return contentMap[key] ?? null;\n }\n return tab.content ?? null;\n }\n\n protected resolveText(key: string): string | undefined {\n if (this.translateService) {\n const result = this.translateService.translate(key);\n return result !== key ? result : undefined;\n }\n return undefined;\n }\n}\n","<div class=\"solaris-editable-tabs__wrapper\">\n <solaris-tabs\n [value]=\"$any(value())\"\n (valueChange)=\"onValueChange($event)\"\n [defaultValue]=\"$any(defaultValue())\"\n [orientation]=\"orientation()\"\n [appearance]=\"appearance()\"\n [size]=\"size()\"\n [density]=\"density()\"\n [activationMode]=\"activationMode()\"\n [contentTransition]=\"contentTransition()\"\n [ariaLabel]=\"resolvedAriaLabel()\"\n class=\"solaris-editable-tabs__inner\"\n >\n @for (tab of tabs(); track tab.value; let i = $index) {\n <solaris-tab\n [value]=\"$any(tab.value)\"\n [label]=\"isRenaming(tab) ? undefined : tab.label\"\n [labelKey]=\"isRenaming(tab) ? undefined : tab.labelKey\"\n [icon]=\"tab.icon\"\n [badge]=\"tab.badge\"\n [disabled]=\"tab.disabled ?? false\"\n [attr.data-editable]=\"editable() ? '' : null\"\n [attr.data-has-icon]=\"tab.icon ? '' : null\"\n [attr.data-menu-open]=\"activeMenuIndex() === i ? '' : null\"\n >\n @if (isRenaming(tab)) {\n <span class=\"solaris-editable-tabs__rename-wrapper\">\n <input\n #renameInput\n class=\"solaris-editable-tabs__rename-input\"\n [value]=\"renameValue()\"\n (input)=\"renameValue.set($any($event).target.value)\"\n (keydown)=\"onRenameKeydown($event, tab)\"\n (blur)=\"onRenameBlur(tab)\"\n [attr.aria-label]=\"\n resolveText('solaris.editableTabs.confirmRename') ??\n 'Confirm rename'\n \"\n />\n </span>\n } @else if (hasActions(tab)) {\n <span\n class=\"solaris-editable-tabs__action-area\"\n [class.solaris-editable-tabs__action-area--visible]=\"\n showActions() === 'always'\n \"\n [class.solaris-editable-tabs__action-area--replaces-icon]=\"\n !!tab.icon\n \"\n >\n <button\n class=\"solaris-editable-tabs__action-trigger\"\n solaris-dropdown-menu-trigger\n [solarisDropdownMenuTriggerFor]=\"tabMenuRefs()[i]\"\n [solarisDropdownMenuPlacement]=\"'bottom'\"\n [solarisDropdownMenuAlign]=\"'start'\"\n [solarisDropdownMenuOffset]=\"4\"\n [solarisDropdownMenuRestoreFocus]=\"true\"\n [solarisDropdownMenuOpen]=\"activeMenuIndex() === i\"\n (menuOpened)=\"activeMenuIndex.set(i)\"\n (menuClosed)=\"activeMenuIndex.set(null)\"\n [attr.aria-label]=\"\n resolveText('solaris.editableTabs.tabActions') ?? 'Tab actions'\n \"\n tabindex=\"0\"\n type=\"button\"\n >\n <solaris-icon name=\"ellipses\" [decorative]=\"true\" />\n </button>\n </span>\n }\n </solaris-tab>\n }\n\n @for (tab of tabs(); track tab.value) {\n <solaris-tab-panel [value]=\"$any(tab.value)\" [lazy]=\"true\">\n @if (getContentTemplate(tab); as tmpl) {\n <ng-container [ngTemplateOutlet]=\"tmpl\" />\n }\n </solaris-tab-panel>\n }\n </solaris-tabs>\n</div>\n\n@for (tab of tabs(); track tab.value; let i = $index) {\n <solaris-dropdown-menu>\n @if (canRename(tab)) {\n <solaris-dropdown-menu-item\n [label]=\"resolveText('solaris.editableTabs.rename') ?? 'Rename'\"\n icon=\"edit\"\n (itemSelected)=\"startRename(tab)\"\n />\n }\n @if (canSetDefault(tab)) {\n <solaris-dropdown-menu-item\n [label]=\"\n resolveText('solaris.editableTabs.setAsDefault') ?? 'Set as default'\n \"\n icon=\"check\"\n (itemSelected)=\"setAsDefault(tab)\"\n />\n }\n @if (canMoveLeft(tab)) {\n <solaris-dropdown-menu-item\n [label]=\"moveLabel('left')\"\n [icon]=\"moveIcon('left')\"\n (itemSelected)=\"\n moveTab(tab, i, orientation() === 'vertical' ? 'up' : 'left')\n \"\n />\n }\n @if (canMoveRight(tab)) {\n <solaris-dropdown-menu-item\n [label]=\"moveLabel('right')\"\n [icon]=\"moveIcon('right')\"\n (itemSelected)=\"\n moveTab(tab, i, orientation() === 'vertical' ? 'down' : 'right')\n \"\n />\n }\n @if (tab.customActions?.length) {\n @for (action of tab.customActions; track action.id) {\n @if (!action.disabled) {\n <solaris-dropdown-menu-item\n [label]=\"action.label ?? ''\"\n [labelKey]=\"action.labelKey\"\n [icon]=\"action.icon\"\n [color]=\"action.color ?? 'neutral'\"\n (itemSelected)=\"handleCustomAction(tab, action)\"\n />\n }\n }\n }\n @if (canRemove(tab)) {\n <solaris-divider />\n <solaris-dropdown-menu-item\n [label]=\"resolveText('solaris.editableTabs.remove') ?? 'Remove'\"\n icon=\"x\"\n color=\"danger\"\n (itemSelected)=\"confirmRemove(tab, i)\"\n />\n }\n </solaris-dropdown-menu>\n}\n"]}
@@ -0,0 +1,34 @@
1
+ import { Component, input, ChangeDetectionStrategy, TemplateRef, contentChild, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SolarisEditableTabComponent {
4
+ value = input.required(...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
5
+ locked = input(false, ...(ngDevMode ? [{ debugName: "locked" }] : /* istanbul ignore next */ []));
6
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
7
+ icon = input(undefined, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
8
+ label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
9
+ labelKey = input(undefined, ...(ngDevMode ? [{ debugName: "labelKey" }] : /* istanbul ignore next */ []));
10
+ movable = input(undefined, ...(ngDevMode ? [{ debugName: "movable" }] : /* istanbul ignore next */ []));
11
+ removable = input(undefined, ...(ngDevMode ? [{ debugName: "removable" }] : /* istanbul ignore next */ []));
12
+ renamable = input(undefined, ...(ngDevMode ? [{ debugName: "renamable" }] : /* istanbul ignore next */ []));
13
+ defaultable = input(undefined, ...(ngDevMode ? [{ debugName: "defaultable" }] : /* istanbul ignore next */ []));
14
+ badge = input(undefined, ...(ngDevMode ? [{ debugName: "badge" }] : /* istanbul ignore next */ []));
15
+ customActions = input(undefined, ...(ngDevMode ? [{ debugName: "customActions" }] : /* istanbul ignore next */ []));
16
+ content = contentChild(TemplateRef, ...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SolarisEditableTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.17", type: SolarisEditableTabComponent, isStandalone: true, selector: "solaris-editable-tab", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, locked: { classPropertyName: "locked", publicName: "locked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelKey: { classPropertyName: "labelKey", publicName: "labelKey", isSignal: true, isRequired: false, transformFunction: null }, movable: { classPropertyName: "movable", publicName: "movable", isSignal: true, isRequired: false, transformFunction: null }, removable: { classPropertyName: "removable", publicName: "removable", isSignal: true, isRequired: false, transformFunction: null }, renamable: { classPropertyName: "renamable", publicName: "renamable", isSignal: true, isRequired: false, transformFunction: null }, defaultable: { classPropertyName: "defaultable", publicName: "defaultable", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, customActions: { classPropertyName: "customActions", publicName: "customActions", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-value": "value()", "attr.data-locked": "locked() ? \"\" : null" }, classAttribute: "solaris-editable-tab" }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SolarisEditableTabComponent, decorators: [{
21
+ type: Component,
22
+ args: [{
23
+ selector: 'solaris-editable-tab',
24
+ standalone: true,
25
+ template: '',
26
+ changeDetection: ChangeDetectionStrategy.OnPush,
27
+ host: {
28
+ class: 'solaris-editable-tab',
29
+ '[attr.data-value]': 'value()',
30
+ '[attr.data-locked]': 'locked() ? "" : null',
31
+ },
32
+ }]
33
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], locked: [{ type: i0.Input, args: [{ isSignal: true, alias: "locked", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], labelKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelKey", required: false }] }], movable: [{ type: i0.Input, args: [{ isSignal: true, alias: "movable", required: false }] }], removable: [{ type: i0.Input, args: [{ isSignal: true, alias: "removable", required: false }] }], renamable: [{ type: i0.Input, args: [{ isSignal: true, alias: "renamable", required: false }] }], defaultable: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultable", required: false }] }], badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], customActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "customActions", required: false }] }], content: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
34
+ //# sourceMappingURL=editable-tab.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editable-tab.component.js","sourceRoot":"","sources":["../../../../../../../../../packages/angular/src/lib/components/navigation/editable-tabs/editable-tab/editable-tab.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,EACL,uBAAuB,EACvB,WAAW,EACX,YAAY,GACb,MAAM,eAAe,CAAC;;AAevB,MAAM,OAAO,2BAA2B;IAC7B,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAW,CAAC;IAClC,MAAM,GAAG,KAAK,CAAU,KAAK,6EAAC,CAAC;IAC/B,QAAQ,GAAG,KAAK,CAAU,KAAK,+EAAC,CAAC;IACjC,IAAI,GAAG,KAAK,CAAqB,SAAS,2EAAC,CAAC;IAC5C,KAAK,GAAG,KAAK,CAAqB,SAAS,4EAAC,CAAC;IAC7C,QAAQ,GAAG,KAAK,CAAqB,SAAS,+EAAC,CAAC;IAChD,OAAO,GAAG,KAAK,CAAsB,SAAS,8EAAC,CAAC;IAChD,SAAS,GAAG,KAAK,CAAsB,SAAS,gFAAC,CAAC;IAClD,SAAS,GAAG,KAAK,CAAsB,SAAS,gFAAC,CAAC;IAClD,WAAW,GAAG,KAAK,CAAsB,SAAS,kFAAC,CAAC;IACpD,KAAK,GAAG,KAAK,CAA8B,SAAS,4EAAC,CAAC;IACtD,aAAa,GAAG,KAAK,CAC5B,SAAS,oFACV,CAAC;IAEO,OAAO,GAAG,YAAY,CAAC,WAAW,8EAAC,CAAC;wGAhBlC,2BAA2B;4FAA3B,2BAA2B,wwDAgBN,WAAW,gEAxBjC,EAAE;;4FAQD,2BAA2B;kBAXvC,SAAS;mBAAC;oBACT,QAAQ,EAAE,sBAAsB;oBAChC,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,IAAI,EAAE;wBACJ,KAAK,EAAE,sBAAsB;wBAC7B,mBAAmB,EAAE,SAAS;wBAC9B,oBAAoB,EAAE,sBAAsB;qBAC7C;iBACF;+sCAiBiC,WAAW","sourcesContent":["import {\n Component,\n input,\n ChangeDetectionStrategy,\n TemplateRef,\n contentChild,\n} from '@angular/core';\n\nimport type { SolarisEditableTabAction } from '../model/editable-tabs.types';\n\n@Component({\n selector: 'solaris-editable-tab',\n standalone: true,\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-editable-tab',\n '[attr.data-value]': 'value()',\n '[attr.data-locked]': 'locked() ? \"\" : null',\n },\n})\nexport class SolarisEditableTabComponent {\n readonly value = input.required<unknown>();\n readonly locked = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly icon = input<string | undefined>(undefined);\n readonly label = input<string | undefined>(undefined);\n readonly labelKey = input<string | undefined>(undefined);\n readonly movable = input<boolean | undefined>(undefined);\n readonly removable = input<boolean | undefined>(undefined);\n readonly renamable = input<boolean | undefined>(undefined);\n readonly defaultable = input<boolean | undefined>(undefined);\n readonly badge = input<string | number | undefined>(undefined);\n readonly customActions = input<SolarisEditableTabAction[] | undefined>(\n undefined,\n );\n\n readonly content = contentChild(TemplateRef);\n}\n"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=editable-tabs.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editable-tabs.types.js","sourceRoot":"","sources":["../../../../../../../../../packages/angular/src/lib/components/navigation/editable-tabs/model/editable-tabs.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { TemplateRef } from '@angular/core';\n\nimport type {\n SolarisTabsOrientation,\n SolarisTabsAppearance,\n SolarisTabsSize,\n SolarisTabsDensity,\n SolarisTabsActivationMode,\n SolarisTabsContentTransition,\n} from '../../tabs';\n\nexport type SolarisEditableTabsOrientation = SolarisTabsOrientation;\nexport type SolarisEditableTabsAppearance = SolarisTabsAppearance;\nexport type SolarisEditableTabsSize = SolarisTabsSize;\nexport type SolarisEditableTabsDensity = SolarisTabsDensity;\nexport type SolarisEditableTabsActivationMode = SolarisTabsActivationMode;\nexport type SolarisEditableTabsContentTransition = SolarisTabsContentTransition;\n\nexport type SolarisEditableTabsShowActions = 'hover' | 'always' | 'focus-hover';\nexport type SolarisEditableTabsRenameOnBlur = 'confirm' | 'cancel';\nexport type SolarisEditableTabMoveDirection = 'left' | 'right' | 'up' | 'down';\n\nexport interface SolarisEditableTabData<TValue = unknown> {\n value: TValue;\n label?: string;\n labelKey?: string;\n icon?: string;\n badge?: string | number;\n disabled?: boolean;\n locked?: boolean;\n renamable?: boolean;\n removable?: boolean;\n movable?: boolean;\n defaultable?: boolean;\n customActions?: SolarisEditableTabAction[];\n content?: TemplateRef<void>;\n}\n\nexport interface SolarisEditableTabAction {\n id: string;\n label?: string;\n labelKey?: string;\n icon?: string;\n color?: 'neutral' | 'primary' | 'success' | 'warning' | 'danger' | 'info';\n disabled?: boolean;\n}\n\nexport interface SolarisEditableTabRenameEvent<TValue = unknown> {\n value: TValue;\n previousLabel: string;\n nextLabel: string;\n source: 'inline' | 'api';\n}\n\nexport interface SolarisEditableTabRemoveEvent<TValue = unknown> {\n value: TValue;\n index: number;\n wasActive: boolean;\n}\n\nexport interface SolarisEditableTabMoveEvent<TValue = unknown> {\n value: TValue;\n previousIndex: number;\n nextIndex: number;\n direction: SolarisEditableTabMoveDirection;\n}\n\nexport interface SolarisEditableTabDefaultChangeEvent<TValue = unknown> {\n value: TValue;\n previousDefaultValue?: TValue;\n}\n\nexport interface SolarisEditableTabActionEvent<TValue = unknown> {\n tabValue: TValue;\n actionId: string;\n action: SolarisEditableTabAction;\n}\n"]}
@@ -0,0 +1,242 @@
1
+ import { Component, input, output, model, contentChildren, computed, signal, inject, ChangeDetectionStrategy, effect, ElementRef, NgZone, Injector, forwardRef, } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { SolarisSegmentedItemComponent } from '../item/segmented-item.component';
4
+ import { SolarisTranslateService } from '../../../../services/translation';
5
+ import { SOLARIS_SEGMENTED_CONTROL, } from '../token/segmented-control.tokens';
6
+ import * as i0 from "@angular/core";
7
+ let nextInstanceId = 0;
8
+ export class SolarisSegmentedControlComponent {
9
+ translateService = inject(SolarisTranslateService, {
10
+ optional: true,
11
+ });
12
+ elementRef = inject(ElementRef);
13
+ injector = inject(Injector);
14
+ ngZone = inject(NgZone);
15
+ items = contentChildren(SolarisSegmentedItemComponent, ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
16
+ invalid = input(false, ...(ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []));
17
+ indicator = input(true, ...(ngDevMode ? [{ debugName: "indicator" }] : /* istanbul ignore next */ []));
18
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
19
+ readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
20
+ required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
21
+ fullWidth = input(false, ...(ngDevMode ? [{ debugName: "fullWidth" }] : /* istanbul ignore next */ []));
22
+ equalWidth = input(false, ...(ngDevMode ? [{ debugName: "equalWidth" }] : /* istanbul ignore next */ []));
23
+ value = model(undefined, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
24
+ defaultValue = input(undefined, ...(ngDevMode ? [{ debugName: "defaultValue" }] : /* istanbul ignore next */ []));
25
+ compareFn = computed(() => this.compareWith(), ...(ngDevMode ? [{ debugName: "compareFn" }] : /* istanbul ignore next */ []));
26
+ ariaLabel = input(undefined, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
27
+ ariaLabelKey = input(undefined, ...(ngDevMode ? [{ debugName: "ariaLabelKey" }] : /* istanbul ignore next */ []));
28
+ ariaLabelledby = input(undefined, ...(ngDevMode ? [{ debugName: "ariaLabelledby" }] : /* istanbul ignore next */ []));
29
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
30
+ radius = input('md', ...(ngDevMode ? [{ debugName: "radius" }] : /* istanbul ignore next */ []));
31
+ compareWith = input(Object.is, ...(ngDevMode ? [{ debugName: "compareWith" }] : /* istanbul ignore next */ []));
32
+ density = input('comfortable', ...(ngDevMode ? [{ debugName: "density" }] : /* istanbul ignore next */ []));
33
+ appearance = input('surface', ...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
34
+ orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
35
+ valueChange = output();
36
+ segmentedChange = output();
37
+ instanceId = `solaris-segmented-control-${nextInstanceId++}`;
38
+ touched = signal(false, ...(ngDevMode ? [{ debugName: "touched" }] : /* istanbul ignore next */ []));
39
+ indicatorWidth = signal('0', ...(ngDevMode ? [{ debugName: "indicatorWidth" }] : /* istanbul ignore next */ []));
40
+ indicatorHeight = signal('0', ...(ngDevMode ? [{ debugName: "indicatorHeight" }] : /* istanbul ignore next */ []));
41
+ indicatorReady = signal(false, ...(ngDevMode ? [{ debugName: "indicatorReady" }] : /* istanbul ignore next */ []));
42
+ internalDisabled = signal(false, ...(ngDevMode ? [{ debugName: "internalDisabled" }] : /* istanbul ignore next */ []));
43
+ indicatorTransformX = signal('translateX(0)', ...(ngDevMode ? [{ debugName: "indicatorTransformX" }] : /* istanbul ignore next */ []));
44
+ indicatorTransformY = signal('translateY(0)', ...(ngDevMode ? [{ debugName: "indicatorTransformY" }] : /* istanbul ignore next */ []));
45
+ onChange = () => undefined;
46
+ onTouched = () => undefined;
47
+ resizeObserver = null;
48
+ contentObserver = null;
49
+ isEffectivelyDisabled = computed(() => {
50
+ return this.disabled() || this.internalDisabled();
51
+ }, ...(ngDevMode ? [{ debugName: "isEffectivelyDisabled" }] : /* istanbul ignore next */ []));
52
+ hasValue = computed(() => {
53
+ return this.value() !== undefined && this.value() !== null;
54
+ }, ...(ngDevMode ? [{ debugName: "hasValue" }] : /* istanbul ignore next */ []));
55
+ resolvedAriaLabel = computed(() => {
56
+ if (this.ariaLabel())
57
+ return this.ariaLabel();
58
+ const ariaLabelKey = this.ariaLabelKey();
59
+ if (ariaLabelKey && this.translateService) {
60
+ return this.translateService.translate(ariaLabelKey);
61
+ }
62
+ return ariaLabelKey ?? undefined;
63
+ }, ...(ngDevMode ? [{ debugName: "resolvedAriaLabel" }] : /* istanbul ignore next */ []));
64
+ constructor() {
65
+ effect(() => {
66
+ const defaultValue = this.defaultValue();
67
+ const currentValue = this.value();
68
+ if (currentValue === undefined && defaultValue !== undefined) {
69
+ this.value.set(defaultValue);
70
+ }
71
+ });
72
+ }
73
+ ngAfterViewInit() {
74
+ this.setupIndicatorMeasurement();
75
+ effect(() => {
76
+ this.value();
77
+ this.appearance();
78
+ this.orientation();
79
+ this.size();
80
+ this.density();
81
+ this.radius();
82
+ this.ngZone.runOutsideAngular(() => {
83
+ requestAnimationFrame(() => this.measureIndicator());
84
+ });
85
+ }, { injector: this.injector });
86
+ }
87
+ ngOnDestroy() {
88
+ this.disconnectObserver();
89
+ }
90
+ selectItem(item) {
91
+ if (this.isEffectivelyDisabled())
92
+ return;
93
+ if (this.readonly())
94
+ return;
95
+ const previousValue = this.value();
96
+ const newValue = item.value();
97
+ if (this.compareFn()(newValue, previousValue))
98
+ return;
99
+ this.value.set(newValue);
100
+ this.valueChange.emit(newValue);
101
+ this.segmentedChange.emit({ value: newValue, previousValue });
102
+ this.onChange(newValue);
103
+ this.markAsTouched();
104
+ }
105
+ focusItem(item) {
106
+ // SECURITY_EXCEPTION: nativeElement.querySelector required to find item DOM element for programmatic focus. Standard DOM method, SSR-safe with guard.
107
+ const nativeElement = this.elementRef.nativeElement;
108
+ const itemElements = nativeElement.querySelectorAll('solaris-segmented-item');
109
+ const items = this.items();
110
+ const index = items.indexOf(item);
111
+ if (index >= 0 && itemElements[index]) {
112
+ itemElements[index].focus();
113
+ }
114
+ }
115
+ // ControlValueAccessor
116
+ writeValue(safe) {
117
+ this.value.set(safe);
118
+ this.ngZone.runOutsideAngular(() => {
119
+ requestAnimationFrame(() => this.measureIndicator());
120
+ });
121
+ }
122
+ registerOnChange(fn) {
123
+ this.onChange = fn;
124
+ }
125
+ registerOnTouched(fn) {
126
+ this.onTouched = fn;
127
+ }
128
+ setDisabledState(isDisabled) {
129
+ this.internalDisabled.set(isDisabled);
130
+ }
131
+ markAsTouched() {
132
+ if (!this.touched()) {
133
+ this.touched.set(true);
134
+ this.onTouched();
135
+ }
136
+ }
137
+ measureIndicator() {
138
+ if (!this.indicator())
139
+ return;
140
+ // SECURITY_EXCEPTION: nativeElement.querySelector required to measure indicator position for animation. Read-only measurement, SSR-safe.
141
+ const nativeEl = this.elementRef.nativeElement;
142
+ const container = nativeEl.querySelector('.solaris-segmented-control__container');
143
+ if (!container)
144
+ return;
145
+ const selectedItem = container.querySelector('solaris-segmented-item[data-selected="true"]');
146
+ if (!selectedItem)
147
+ return;
148
+ const isVertical = this.orientation() === 'vertical';
149
+ if (isVertical) {
150
+ this.indicatorTransformY.set(`translateY(${selectedItem.offsetTop}px)`);
151
+ this.indicatorHeight.set(`${selectedItem.offsetHeight}px`);
152
+ }
153
+ else {
154
+ this.indicatorTransformX.set(`translateX(${selectedItem.offsetLeft}px)`);
155
+ this.indicatorWidth.set(`${selectedItem.offsetWidth}px`);
156
+ }
157
+ if (!this.indicatorReady()) {
158
+ requestAnimationFrame(() => this.indicatorReady.set(true));
159
+ }
160
+ }
161
+ setupIndicatorMeasurement() {
162
+ if (typeof ResizeObserver !== 'undefined') {
163
+ this.resizeObserver = new ResizeObserver(() => {
164
+ this.ngZone.runOutsideAngular(() => {
165
+ requestAnimationFrame(() => this.measureIndicator());
166
+ });
167
+ });
168
+ // SECURITY_EXCEPTION: nativeElement required for ResizeObserver target. Standard DOM API, SSR-safe with typeof guard.
169
+ const nativeEl = this.elementRef.nativeElement;
170
+ this.resizeObserver.observe(nativeEl);
171
+ }
172
+ if (typeof MutationObserver !== 'undefined') {
173
+ // SECURITY_EXCEPTION: nativeElement required for MutationObserver target. Standard DOM API, SSR-safe with typeof guard.
174
+ const nativeEl = this.elementRef.nativeElement;
175
+ this.contentObserver = new MutationObserver(() => {
176
+ this.ngZone.runOutsideAngular(() => {
177
+ requestAnimationFrame(() => this.measureIndicator());
178
+ });
179
+ });
180
+ this.contentObserver.observe(nativeEl, {
181
+ childList: true,
182
+ subtree: true,
183
+ characterData: true,
184
+ });
185
+ }
186
+ this.ngZone.runOutsideAngular(() => {
187
+ requestAnimationFrame(() => this.measureIndicator());
188
+ });
189
+ }
190
+ disconnectObserver() {
191
+ this.resizeObserver?.disconnect();
192
+ this.resizeObserver = null;
193
+ this.contentObserver?.disconnect();
194
+ this.contentObserver = null;
195
+ }
196
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SolarisSegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
197
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SolarisSegmentedControlComponent, isStandalone: true, selector: "solaris-segmented-control", inputs: { invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, indicator: { classPropertyName: "indicator", publicName: "indicator", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, equalWidth: { classPropertyName: "equalWidth", publicName: "equalWidth", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelKey: { classPropertyName: "ariaLabelKey", publicName: "ariaLabelKey", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", valueChange: "valueChange", segmentedChange: "segmentedChange" }, host: { attributes: { "role": "radiogroup" }, properties: { "attr.data-size": "size()", "attr.data-radius": "radius()", "attr.data-density": "density()", "attr.data-appearance": "appearance()", "attr.data-orientation": "orientation()", "attr.data-invalid": "invalid() || undefined", "attr.data-readonly": "readonly() || undefined", "attr.aria-required": "required() || undefined", "attr.data-full-width": "fullWidth() || undefined", "attr.data-equal-width": "equalWidth() || undefined", "attr.aria-label": "resolvedAriaLabel() || undefined", "attr.data-show-indicator": "indicator() || undefined", "attr.aria-labelledby": "ariaLabelledby() || undefined", "attr.data-disabled": "isEffectivelyDisabled() || undefined", "attr.aria-disabled": "isEffectivelyDisabled() || undefined", "attr.aria-invalid": "invalid() || (required() && touched() && !hasValue()) ? \"true\" : undefined" }, classAttribute: "solaris-segmented-control" }, providers: [
198
+ {
199
+ provide: NG_VALUE_ACCESSOR,
200
+ useExisting: forwardRef(() => SolarisSegmentedControlComponent),
201
+ multi: true,
202
+ },
203
+ {
204
+ provide: SOLARIS_SEGMENTED_CONTROL,
205
+ useExisting: SolarisSegmentedControlComponent,
206
+ },
207
+ ], queries: [{ propertyName: "items", predicate: SolarisSegmentedItemComponent, isSignal: true }], ngImport: i0, template: "<div class=\"solaris-segmented-control__container\">\n <ng-content select=\"solaris-segmented-item\" />\n\n @if (indicator() && hasValue()) {\n <div\n class=\"solaris-segmented-control__indicator\"\n [class.solaris-segmented-control__indicator--animate]=\"indicatorReady()\"\n [class.solaris-segmented-control__indicator--vertical]=\"\n orientation() === 'vertical'\n \"\n [style.transform]=\"\n orientation() === 'vertical'\n ? indicatorTransformY()\n : indicatorTransformX()\n \"\n [style.width]=\"orientation() === 'vertical' ? '' : indicatorWidth()\"\n [style.height]=\"orientation() === 'vertical' ? indicatorHeight() : ''\"\n ></div>\n }\n</div>\n", styles: [":host{--solaris-segmented-item-height: auto;--solaris-segmented-gap: var(--solaris-spacing-1);--solaris-segmented-radius: var(--solaris-radius-md);--solaris-segmented-padding: var(--solaris-spacing-1);--solaris-segmented-item-color: var(--solaris-text-default);--solaris-segmented-item-padding-y: var(--solaris-spacing-2);--solaris-segmented-item-padding-x: var(--solaris-spacing-3);--solaris-segmented-background: var(--solaris-surface-subtle);--solaris-segmented-indicator-shadow: var(--solaris-shadow-sm);--solaris-segmented-border-color: var(--solaris-border-subtle);--solaris-segmented-border-width: var(--solaris-border-width-sm);--solaris-segmented-focus-ring-color: var(--solaris-primary-base);--solaris-segmented-item-selected-color: var(--solaris-text-strong);--solaris-segmented-indicator-background: var(--solaris-surface-muted);--solaris-segmented-item-hover-background: var(--solaris-surface-muted);width:auto;display:inline-flex}:host([data-full-width]){width:100%;display:flex}.solaris-segmented-control__container{width:100%;display:flex;position:relative;align-items:stretch;box-sizing:border-box;gap:var(--solaris-segmented-gap);padding:var(--solaris-segmented-padding);border-radius:var(--solaris-segmented-radius);background:var(--solaris-segmented-background)}:host([data-orientation=horizontal]) .solaris-segmented-control__container{flex-direction:row}:host([data-orientation=vertical]) .solaris-segmented-control__container{flex-direction:column}:host([data-appearance=outline]) .solaris-segmented-control__container{background:var(--solaris-surface-base);border:var(--solaris-segmented-border-width) solid var(--solaris-segmented-border-color)}:host([data-appearance=surface]) .solaris-segmented-control__container{background:var(--solaris-segmented-background)}:host([data-radius=sm]){--solaris-segmented-radius: var(--solaris-radius-sm)}:host([data-radius=md]){--solaris-segmented-radius: var(--solaris-radius-md)}:host([data-radius=lg]){--solaris-segmented-radius: var(--solaris-radius-lg)}:host([data-radius=full]){--solaris-segmented-radius: var(--solaris-radius-full)}:host([data-size=sm]){--solaris-segmented-gap: var(--solaris-spacing-1);--solaris-segmented-padding: var(--solaris-spacing-1)}:host([data-size=md]){--solaris-segmented-gap: var(--solaris-spacing-2);--solaris-segmented-padding: var(--solaris-spacing-1)}:host([data-size=lg]){--solaris-segmented-gap: var(--solaris-spacing-3);--solaris-segmented-padding: var(--solaris-spacing-1)}:host([data-size=sm][data-density=compact]){--solaris-segmented-gap: var(--solaris-spacing-1);--solaris-segmented-padding: var(--solaris-border-width-sm)}:host([data-size=md][data-density=compact]){--solaris-segmented-gap: var(--solaris-spacing-1);--solaris-segmented-padding: var(--solaris-border-width-sm)}:host([data-size=lg][data-density=compact]){--solaris-segmented-gap: var(--solaris-spacing-2);--solaris-segmented-padding: var(--solaris-border-width-sm)}:host([data-equal-width]) .solaris-segmented-control__container>solaris-segmented-item{flex:1;justify-content:center}:host([data-disabled]){cursor:not-allowed}:host([data-disabled]) .solaris-segmented-control__indicator{opacity:.6;cursor:not-allowed}:host([data-invalid]) .solaris-segmented-control__container{outline-offset:var(--solaris-border-width-sm);outline:var(--solaris-border-width-md) solid var(--solaris-danger-base)}:host([data-invalid][data-appearance=outline]) .solaris-segmented-control__container{border-color:var(--solaris-danger-base)}.solaris-segmented-control__indicator{left:0;z-index:1;height:auto;transition:none;position:absolute;pointer-events:none;box-sizing:border-box;top:var(--solaris-segmented-padding);bottom:var(--solaris-segmented-padding);box-shadow:var(--solaris-segmented-indicator-shadow);background:var(--solaris-segmented-indicator-background);border:var(--solaris-border-width-sm) solid var(--solaris-border-subtle);border-radius:max(var(--solaris-radius-sm),var(--solaris-segmented-radius) - var(--solaris-segmented-padding),var(--solaris-segmented-padding) - var(--solaris-segmented-radius))}.solaris-segmented-control__indicator--vertical{top:0;height:0;width:auto;bottom:auto;left:var(--solaris-segmented-padding);right:var(--solaris-segmented-padding)}.solaris-segmented-control__indicator--animate{transition:transform var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard),width var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard),height var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard)}@media(prefers-reduced-motion:reduce){.solaris-segmented-control__indicator{transition:none}}:host-context([data-reduced-motion=true]) .solaris-segmented-control__indicator{transition:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
208
+ }
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SolarisSegmentedControlComponent, decorators: [{
210
+ type: Component,
211
+ args: [{ selector: 'solaris-segmented-control', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, host: {
212
+ class: 'solaris-segmented-control',
213
+ role: 'radiogroup',
214
+ '[attr.data-size]': 'size()',
215
+ '[attr.data-radius]': 'radius()',
216
+ '[attr.data-density]': 'density()',
217
+ '[attr.data-appearance]': 'appearance()',
218
+ '[attr.data-orientation]': 'orientation()',
219
+ '[attr.data-invalid]': 'invalid() || undefined',
220
+ '[attr.data-readonly]': 'readonly() || undefined',
221
+ '[attr.aria-required]': 'required() || undefined',
222
+ '[attr.data-full-width]': 'fullWidth() || undefined',
223
+ '[attr.data-equal-width]': 'equalWidth() || undefined',
224
+ '[attr.aria-label]': 'resolvedAriaLabel() || undefined',
225
+ '[attr.data-show-indicator]': 'indicator() || undefined',
226
+ '[attr.aria-labelledby]': 'ariaLabelledby() || undefined',
227
+ '[attr.data-disabled]': 'isEffectivelyDisabled() || undefined',
228
+ '[attr.aria-disabled]': 'isEffectivelyDisabled() || undefined',
229
+ '[attr.aria-invalid]': 'invalid() || (required() && touched() && !hasValue()) ? "true" : undefined',
230
+ }, providers: [
231
+ {
232
+ provide: NG_VALUE_ACCESSOR,
233
+ useExisting: forwardRef(() => SolarisSegmentedControlComponent),
234
+ multi: true,
235
+ },
236
+ {
237
+ provide: SOLARIS_SEGMENTED_CONTROL,
238
+ useExisting: SolarisSegmentedControlComponent,
239
+ },
240
+ ], template: "<div class=\"solaris-segmented-control__container\">\n <ng-content select=\"solaris-segmented-item\" />\n\n @if (indicator() && hasValue()) {\n <div\n class=\"solaris-segmented-control__indicator\"\n [class.solaris-segmented-control__indicator--animate]=\"indicatorReady()\"\n [class.solaris-segmented-control__indicator--vertical]=\"\n orientation() === 'vertical'\n \"\n [style.transform]=\"\n orientation() === 'vertical'\n ? indicatorTransformY()\n : indicatorTransformX()\n \"\n [style.width]=\"orientation() === 'vertical' ? '' : indicatorWidth()\"\n [style.height]=\"orientation() === 'vertical' ? indicatorHeight() : ''\"\n ></div>\n }\n</div>\n", styles: [":host{--solaris-segmented-item-height: auto;--solaris-segmented-gap: var(--solaris-spacing-1);--solaris-segmented-radius: var(--solaris-radius-md);--solaris-segmented-padding: var(--solaris-spacing-1);--solaris-segmented-item-color: var(--solaris-text-default);--solaris-segmented-item-padding-y: var(--solaris-spacing-2);--solaris-segmented-item-padding-x: var(--solaris-spacing-3);--solaris-segmented-background: var(--solaris-surface-subtle);--solaris-segmented-indicator-shadow: var(--solaris-shadow-sm);--solaris-segmented-border-color: var(--solaris-border-subtle);--solaris-segmented-border-width: var(--solaris-border-width-sm);--solaris-segmented-focus-ring-color: var(--solaris-primary-base);--solaris-segmented-item-selected-color: var(--solaris-text-strong);--solaris-segmented-indicator-background: var(--solaris-surface-muted);--solaris-segmented-item-hover-background: var(--solaris-surface-muted);width:auto;display:inline-flex}:host([data-full-width]){width:100%;display:flex}.solaris-segmented-control__container{width:100%;display:flex;position:relative;align-items:stretch;box-sizing:border-box;gap:var(--solaris-segmented-gap);padding:var(--solaris-segmented-padding);border-radius:var(--solaris-segmented-radius);background:var(--solaris-segmented-background)}:host([data-orientation=horizontal]) .solaris-segmented-control__container{flex-direction:row}:host([data-orientation=vertical]) .solaris-segmented-control__container{flex-direction:column}:host([data-appearance=outline]) .solaris-segmented-control__container{background:var(--solaris-surface-base);border:var(--solaris-segmented-border-width) solid var(--solaris-segmented-border-color)}:host([data-appearance=surface]) .solaris-segmented-control__container{background:var(--solaris-segmented-background)}:host([data-radius=sm]){--solaris-segmented-radius: var(--solaris-radius-sm)}:host([data-radius=md]){--solaris-segmented-radius: var(--solaris-radius-md)}:host([data-radius=lg]){--solaris-segmented-radius: var(--solaris-radius-lg)}:host([data-radius=full]){--solaris-segmented-radius: var(--solaris-radius-full)}:host([data-size=sm]){--solaris-segmented-gap: var(--solaris-spacing-1);--solaris-segmented-padding: var(--solaris-spacing-1)}:host([data-size=md]){--solaris-segmented-gap: var(--solaris-spacing-2);--solaris-segmented-padding: var(--solaris-spacing-1)}:host([data-size=lg]){--solaris-segmented-gap: var(--solaris-spacing-3);--solaris-segmented-padding: var(--solaris-spacing-1)}:host([data-size=sm][data-density=compact]){--solaris-segmented-gap: var(--solaris-spacing-1);--solaris-segmented-padding: var(--solaris-border-width-sm)}:host([data-size=md][data-density=compact]){--solaris-segmented-gap: var(--solaris-spacing-1);--solaris-segmented-padding: var(--solaris-border-width-sm)}:host([data-size=lg][data-density=compact]){--solaris-segmented-gap: var(--solaris-spacing-2);--solaris-segmented-padding: var(--solaris-border-width-sm)}:host([data-equal-width]) .solaris-segmented-control__container>solaris-segmented-item{flex:1;justify-content:center}:host([data-disabled]){cursor:not-allowed}:host([data-disabled]) .solaris-segmented-control__indicator{opacity:.6;cursor:not-allowed}:host([data-invalid]) .solaris-segmented-control__container{outline-offset:var(--solaris-border-width-sm);outline:var(--solaris-border-width-md) solid var(--solaris-danger-base)}:host([data-invalid][data-appearance=outline]) .solaris-segmented-control__container{border-color:var(--solaris-danger-base)}.solaris-segmented-control__indicator{left:0;z-index:1;height:auto;transition:none;position:absolute;pointer-events:none;box-sizing:border-box;top:var(--solaris-segmented-padding);bottom:var(--solaris-segmented-padding);box-shadow:var(--solaris-segmented-indicator-shadow);background:var(--solaris-segmented-indicator-background);border:var(--solaris-border-width-sm) solid var(--solaris-border-subtle);border-radius:max(var(--solaris-radius-sm),var(--solaris-segmented-radius) - var(--solaris-segmented-padding),var(--solaris-segmented-padding) - var(--solaris-segmented-radius))}.solaris-segmented-control__indicator--vertical{top:0;height:0;width:auto;bottom:auto;left:var(--solaris-segmented-padding);right:var(--solaris-segmented-padding)}.solaris-segmented-control__indicator--animate{transition:transform var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard),width var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard),height var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard)}@media(prefers-reduced-motion:reduce){.solaris-segmented-control__indicator{transition:none}}:host-context([data-reduced-motion=true]) .solaris-segmented-control__indicator{transition:none}\n"] }]
241
+ }], ctorParameters: () => [], propDecorators: { items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SolarisSegmentedItemComponent), { isSignal: true }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], indicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "indicator", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], equalWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "equalWidth", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelKey", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledby", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], compareWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "compareWith", required: false }] }], density: [{ type: i0.Input, args: [{ isSignal: true, alias: "density", required: false }] }], appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], segmentedChange: [{ type: i0.Output, args: ["segmentedChange"] }] } });
242
+ //# sourceMappingURL=segmented-control.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segmented-control.component.js","sourceRoot":"","sources":["../../../../../../../../../packages/angular/src/lib/components/navigation/segmented-control/component/segmented-control.component.ts","../../../../../../../../../packages/angular/src/lib/components/navigation/segmented-control/component/segmented-control.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n input,\n output,\n model,\n contentChildren,\n computed,\n signal,\n inject,\n ChangeDetectionStrategy,\n effect,\n ElementRef,\n NgZone,\n Injector,\n forwardRef,\n AfterViewInit,\n OnDestroy,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\n\nimport { SolarisSegmentedItemComponent } from '../item/segmented-item.component';\nimport { SolarisTranslateService } from '../../../../services/translation';\n\nimport {\n SOLARIS_SEGMENTED_CONTROL,\n type SolarisSegmentedControlInterface,\n} from '../token/segmented-control.tokens';\n\nimport type {\n SolarisSegmentedControlOrientation,\n SolarisSegmentedControlAppearance,\n SolarisSegmentedControlSize,\n SolarisSegmentedControlDensity,\n SolarisSegmentedControlRadius,\n SolarisSegmentedControlChangeEvent,\n} from '../model/segmented-control.types';\n\nlet nextInstanceId = 0;\n\n@Component({\n selector: 'solaris-segmented-control',\n standalone: true,\n imports: [],\n templateUrl: './segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-segmented-control',\n role: 'radiogroup',\n '[attr.data-size]': 'size()',\n '[attr.data-radius]': 'radius()',\n '[attr.data-density]': 'density()',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-invalid]': 'invalid() || undefined',\n '[attr.data-readonly]': 'readonly() || undefined',\n '[attr.aria-required]': 'required() || undefined',\n '[attr.data-full-width]': 'fullWidth() || undefined',\n '[attr.data-equal-width]': 'equalWidth() || undefined',\n '[attr.aria-label]': 'resolvedAriaLabel() || undefined',\n '[attr.data-show-indicator]': 'indicator() || undefined',\n '[attr.aria-labelledby]': 'ariaLabelledby() || undefined',\n '[attr.data-disabled]': 'isEffectivelyDisabled() || undefined',\n '[attr.aria-disabled]': 'isEffectivelyDisabled() || undefined',\n '[attr.aria-invalid]':\n 'invalid() || (required() && touched() && !hasValue()) ? \"true\" : undefined',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisSegmentedControlComponent),\n multi: true,\n },\n {\n provide: SOLARIS_SEGMENTED_CONTROL,\n useExisting: SolarisSegmentedControlComponent,\n },\n ],\n})\nexport class SolarisSegmentedControlComponent\n implements\n SolarisSegmentedControlInterface,\n ControlValueAccessor,\n AfterViewInit,\n OnDestroy\n{\n private readonly translateService = inject(SolarisTranslateService, {\n optional: true,\n });\n private readonly elementRef = inject(ElementRef);\n private readonly injector = inject(Injector);\n private readonly ngZone = inject(NgZone);\n\n readonly items = contentChildren(SolarisSegmentedItemComponent);\n\n readonly invalid = input<boolean>(false);\n readonly indicator = input<boolean>(true);\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly required = input<boolean>(false);\n readonly fullWidth = input<boolean>(false);\n readonly equalWidth = input<boolean>(false);\n readonly value = model<unknown>(undefined);\n readonly defaultValue = input<unknown>(undefined);\n readonly compareFn = computed(() => this.compareWith());\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly ariaLabelKey = input<string | undefined>(undefined);\n readonly ariaLabelledby = input<string | undefined>(undefined);\n readonly size = input<SolarisSegmentedControlSize>('md');\n readonly radius = input<SolarisSegmentedControlRadius>('md');\n readonly compareWith = input<(a: unknown, b: unknown) => boolean>(Object.is);\n readonly density = input<SolarisSegmentedControlDensity>('comfortable');\n readonly appearance = input<SolarisSegmentedControlAppearance>('surface');\n readonly orientation =\n input<SolarisSegmentedControlOrientation>('horizontal');\n\n readonly valueChange = output<unknown>();\n readonly segmentedChange = output<SolarisSegmentedControlChangeEvent>();\n\n protected readonly instanceId = `solaris-segmented-control-${nextInstanceId++}`;\n protected readonly touched = signal(false);\n protected readonly indicatorWidth = signal('0');\n protected readonly indicatorHeight = signal('0');\n protected readonly indicatorReady = signal(false);\n protected readonly internalDisabled = signal(false);\n protected readonly indicatorTransformX = signal('translateX(0)');\n protected readonly indicatorTransformY = signal('translateY(0)');\n\n private onChange: (value: unknown) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n private resizeObserver: ResizeObserver | null = null;\n private contentObserver: MutationObserver | null = null;\n\n protected readonly isEffectivelyDisabled = computed(() => {\n return this.disabled() || this.internalDisabled();\n });\n\n protected readonly hasValue = computed(() => {\n return this.value() !== undefined && this.value() !== null;\n });\n\n protected readonly resolvedAriaLabel = computed(() => {\n if (this.ariaLabel()) return this.ariaLabel();\n const ariaLabelKey = this.ariaLabelKey();\n if (ariaLabelKey && this.translateService) {\n return this.translateService.translate(ariaLabelKey);\n }\n return ariaLabelKey ?? undefined;\n });\n\n constructor() {\n effect(() => {\n const defaultValue = this.defaultValue();\n const currentValue = this.value();\n if (currentValue === undefined && defaultValue !== undefined) {\n this.value.set(defaultValue);\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.setupIndicatorMeasurement();\n\n effect(\n () => {\n this.value();\n this.appearance();\n this.orientation();\n this.size();\n this.density();\n this.radius();\n this.ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this.measureIndicator());\n });\n },\n { injector: this.injector },\n );\n }\n\n ngOnDestroy(): void {\n this.disconnectObserver();\n }\n\n selectItem(item: SolarisSegmentedItemComponent): void {\n if (this.isEffectivelyDisabled()) return;\n if (this.readonly()) return;\n const previousValue = this.value();\n const newValue = item.value();\n if (this.compareFn()(newValue, previousValue)) return;\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n this.segmentedChange.emit({ value: newValue, previousValue });\n this.onChange(newValue);\n this.markAsTouched();\n }\n\n focusItem(item: SolarisSegmentedItemComponent): void {\n // SECURITY_EXCEPTION: nativeElement.querySelector required to find item DOM element for programmatic focus. Standard DOM method, SSR-safe with guard.\n const nativeElement = this.elementRef.nativeElement as HTMLElement;\n const itemElements = nativeElement.querySelectorAll(\n 'solaris-segmented-item',\n ) as NodeListOf<HTMLElement>;\n const items = this.items();\n const index = items.indexOf(item);\n if (index >= 0 && itemElements[index]) {\n itemElements[index].focus();\n }\n }\n\n // ControlValueAccessor\n writeValue(safe: unknown): void {\n this.value.set(safe);\n this.ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this.measureIndicator());\n });\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.internalDisabled.set(isDisabled);\n }\n\n private markAsTouched(): void {\n if (!this.touched()) {\n this.touched.set(true);\n this.onTouched();\n }\n }\n\n private measureIndicator(): void {\n if (!this.indicator()) return;\n\n // SECURITY_EXCEPTION: nativeElement.querySelector required to measure indicator position for animation. Read-only measurement, SSR-safe.\n const nativeEl = this.elementRef.nativeElement as HTMLElement;\n const container = nativeEl.querySelector(\n '.solaris-segmented-control__container',\n ) as HTMLElement | null;\n if (!container) return;\n\n const selectedItem = container.querySelector(\n 'solaris-segmented-item[data-selected=\"true\"]',\n ) as HTMLElement | null;\n if (!selectedItem) return;\n\n const isVertical = this.orientation() === 'vertical';\n\n if (isVertical) {\n this.indicatorTransformY.set(`translateY(${selectedItem.offsetTop}px)`);\n this.indicatorHeight.set(`${selectedItem.offsetHeight}px`);\n } else {\n this.indicatorTransformX.set(`translateX(${selectedItem.offsetLeft}px)`);\n this.indicatorWidth.set(`${selectedItem.offsetWidth}px`);\n }\n\n if (!this.indicatorReady()) {\n requestAnimationFrame(() => this.indicatorReady.set(true));\n }\n }\n\n private setupIndicatorMeasurement(): void {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n this.ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this.measureIndicator());\n });\n });\n // SECURITY_EXCEPTION: nativeElement required for ResizeObserver target. Standard DOM API, SSR-safe with typeof guard.\n const nativeEl = this.elementRef.nativeElement as HTMLElement;\n this.resizeObserver.observe(nativeEl);\n }\n\n if (typeof MutationObserver !== 'undefined') {\n // SECURITY_EXCEPTION: nativeElement required for MutationObserver target. Standard DOM API, SSR-safe with typeof guard.\n const nativeEl = this.elementRef.nativeElement as HTMLElement;\n this.contentObserver = new MutationObserver(() => {\n this.ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this.measureIndicator());\n });\n });\n this.contentObserver.observe(nativeEl, {\n childList: true,\n subtree: true,\n characterData: true,\n });\n }\n\n this.ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this.measureIndicator());\n });\n }\n\n private disconnectObserver(): void {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n this.contentObserver?.disconnect();\n this.contentObserver = null;\n }\n}\n","<div class=\"solaris-segmented-control__container\">\n <ng-content select=\"solaris-segmented-item\" />\n\n @if (indicator() && hasValue()) {\n <div\n class=\"solaris-segmented-control__indicator\"\n [class.solaris-segmented-control__indicator--animate]=\"indicatorReady()\"\n [class.solaris-segmented-control__indicator--vertical]=\"\n orientation() === 'vertical'\n \"\n [style.transform]=\"\n orientation() === 'vertical'\n ? indicatorTransformY()\n : indicatorTransformX()\n \"\n [style.width]=\"orientation() === 'vertical' ? '' : indicatorWidth()\"\n [style.height]=\"orientation() === 'vertical' ? indicatorHeight() : ''\"\n ></div>\n }\n</div>\n"]}