@opalkelly/frontpanel-react-components 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/LICENSE +45 -0
  2. package/README.md +26 -0
  3. package/dist/cjs/index.js +2 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/types/components/FrontPanel/FrontPanel.d.ts +10 -0
  6. package/dist/cjs/types/components/FrontPanel/FrontPanel.props.d.ts +23 -0
  7. package/dist/cjs/types/components/FrontPanel/index.d.ts +7 -0
  8. package/dist/cjs/types/components/FrontPanelIndicator/FrontPanelIndicator.d.ts +30 -0
  9. package/dist/cjs/types/components/FrontPanelIndicator/FrontPanelIndicator.props.d.ts +17 -0
  10. package/dist/cjs/types/components/FrontPanelIndicator/index.d.ts +8 -0
  11. package/dist/cjs/types/components/FrontPanelNumberDisplay/FrontPanelNumberDisplay.d.ts +33 -0
  12. package/dist/cjs/types/components/FrontPanelNumberDisplay/FrontPanelNumberDisplay.props.d.ts +23 -0
  13. package/dist/cjs/types/components/FrontPanelNumberDisplay/index.d.ts +8 -0
  14. package/dist/cjs/types/components/FrontPanelNumberEntry/FrontPanelNumberEntry.d.ts +33 -0
  15. package/dist/cjs/types/components/FrontPanelNumberEntry/FrontPanelNumberEntry.props.d.ts +27 -0
  16. package/dist/cjs/types/components/FrontPanelNumberEntry/index.d.ts +8 -0
  17. package/dist/cjs/types/components/FrontPanelPushButton/FrontPanelPushButton.d.ts +31 -0
  18. package/dist/cjs/types/components/FrontPanelPushButton/FrontPanelPushButton.props.d.ts +17 -0
  19. package/dist/cjs/types/components/FrontPanelPushButton/index.d.ts +8 -0
  20. package/dist/cjs/types/components/FrontPanelRangeSlider/FrontPanelRangeSlider.d.ts +31 -0
  21. package/dist/cjs/types/components/FrontPanelRangeSlider/FrontPanelRangeSlider.props.d.ts +21 -0
  22. package/dist/cjs/types/components/FrontPanelRangeSlider/index.d.ts +8 -0
  23. package/dist/cjs/types/components/FrontPanelSelectEntry/FrontPanelSelectEntry.d.ts +17 -0
  24. package/dist/cjs/types/components/FrontPanelSelectEntry/FrontPanelSelectEntryRoot.d.ts +43 -0
  25. package/dist/cjs/types/components/FrontPanelSelectEntry/FrontPanelSelectEntryRoot.props.d.ts +21 -0
  26. package/dist/cjs/types/components/FrontPanelSelectEntry/index.d.ts +15 -0
  27. package/dist/cjs/types/components/FrontPanelToggleSwitch/FrontPanelToggleSwitch.d.ts +31 -0
  28. package/dist/cjs/types/components/FrontPanelToggleSwitch/FrontPanelToggleSwitch.props.d.ts +17 -0
  29. package/dist/cjs/types/components/FrontPanelToggleSwitch/index.d.ts +8 -0
  30. package/dist/cjs/types/components/FrontPanelTriggerButton/FrontPanelTriggerButton.d.ts +32 -0
  31. package/dist/cjs/types/components/FrontPanelTriggerButton/FrontPanelTriggerButton.props.d.ts +18 -0
  32. package/dist/cjs/types/components/FrontPanelTriggerButton/index.d.ts +8 -0
  33. package/dist/cjs/types/components/Icons/ChevronIcon.d.ts +17 -0
  34. package/dist/cjs/types/components/Icons/IndicatorArrowIcon.d.ts +17 -0
  35. package/dist/cjs/types/components/Icons/IndicatorBarIcon.d.ts +10 -0
  36. package/dist/cjs/types/components/Icons/IndicatorStateIcon.d.ts +14 -0
  37. package/dist/cjs/types/components/Icons/RadioToggleStateIcon.d.ts +14 -0
  38. package/dist/cjs/types/components/Icons/SwitchToggleStateIcon.d.ts +14 -0
  39. package/dist/cjs/types/components/Icons/index.d.ts +12 -0
  40. package/dist/cjs/types/components/Icons/types.d.ts +17 -0
  41. package/dist/cjs/types/components/index.d.ts +16 -0
  42. package/dist/cjs/types/components/types.d.ts +11 -0
  43. package/dist/cjs/types/contexts/FrontPanelContext.d.ts +15 -0
  44. package/dist/cjs/types/contexts/index.d.ts +8 -0
  45. package/dist/cjs/types/core/Binary.d.ts +7 -0
  46. package/dist/cjs/types/core/Numeric.d.ts +80 -0
  47. package/dist/cjs/types/core/Types.d.ts +34 -0
  48. package/dist/cjs/types/core/index.d.ts +9 -0
  49. package/dist/cjs/types/index.d.ts +10 -0
  50. package/dist/cjs/types/primitives/Application/Application.d.ts +10 -0
  51. package/dist/cjs/types/primitives/Application/Application.props.d.ts +10 -0
  52. package/dist/cjs/types/primitives/Application/index.d.ts +1 -0
  53. package/dist/cjs/types/primitives/Button/Button.d.ts +33 -0
  54. package/dist/cjs/types/primitives/Button/Button.props.d.ts +44 -0
  55. package/dist/cjs/types/primitives/Button/index.d.ts +3 -0
  56. package/dist/cjs/types/primitives/DigitEntry/DigitEntry.d.ts +33 -0
  57. package/dist/cjs/types/primitives/DigitEntry/DigitEntry.props.d.ts +51 -0
  58. package/dist/cjs/types/primitives/DigitEntry/index.d.ts +9 -0
  59. package/dist/cjs/types/primitives/Indicator/Indicator.d.ts +29 -0
  60. package/dist/cjs/types/primitives/Indicator/Indicator.props.d.ts +35 -0
  61. package/dist/cjs/types/primitives/Indicator/index.d.ts +9 -0
  62. package/dist/cjs/types/primitives/Label/Label.d.ts +31 -0
  63. package/dist/cjs/types/primitives/Label/Label.props.d.ts +33 -0
  64. package/dist/cjs/types/primitives/Label/index.d.ts +9 -0
  65. package/dist/cjs/types/primitives/NumberDisplay/NumberDisplay.d.ts +31 -0
  66. package/dist/cjs/types/primitives/NumberDisplay/NumberDisplay.props.d.ts +52 -0
  67. package/dist/cjs/types/primitives/NumberDisplay/index.d.ts +9 -0
  68. package/dist/cjs/types/primitives/NumberEntry/NumberEntry.d.ts +34 -0
  69. package/dist/cjs/types/primitives/NumberEntry/NumberEntry.props.d.ts +69 -0
  70. package/dist/cjs/types/primitives/NumberEntry/NumberEntryDigits.d.ts +27 -0
  71. package/dist/cjs/types/primitives/NumberEntry/NumberEntryDigits.props.d.ts +43 -0
  72. package/dist/cjs/types/primitives/NumberEntry/index.d.ts +9 -0
  73. package/dist/cjs/types/primitives/RangeSlider/RangeSlider.d.ts +33 -0
  74. package/dist/cjs/types/primitives/RangeSlider/RangeSlider.props.d.ts +77 -0
  75. package/dist/cjs/types/primitives/RangeSlider/index.d.ts +9 -0
  76. package/dist/cjs/types/primitives/SelectEntry/SelectEntry.d.ts +17 -0
  77. package/dist/cjs/types/primitives/SelectEntry/SelectEntryContent.d.ts +16 -0
  78. package/dist/cjs/types/primitives/SelectEntry/SelectEntryGroup.d.ts +15 -0
  79. package/dist/cjs/types/primitives/SelectEntry/SelectEntryItem.d.ts +15 -0
  80. package/dist/cjs/types/primitives/SelectEntry/SelectEntryLabel.d.ts +15 -0
  81. package/dist/cjs/types/primitives/SelectEntry/SelectEntryRoot.d.ts +39 -0
  82. package/dist/cjs/types/primitives/SelectEntry/SelectEntryRoot.props.d.ts +31 -0
  83. package/dist/cjs/types/primitives/SelectEntry/SelectEntrySeparator.d.ts +15 -0
  84. package/dist/cjs/types/primitives/SelectEntry/SelectEntryTrigger.d.ts +16 -0
  85. package/dist/cjs/types/primitives/SelectEntry/SelectEntryTrigger.props.d.ts +16 -0
  86. package/dist/cjs/types/primitives/SelectEntry/index.d.ts +17 -0
  87. package/dist/cjs/types/primitives/Toggle/Toggle.d.ts +35 -0
  88. package/dist/cjs/types/primitives/Toggle/Toggle.props.d.ts +37 -0
  89. package/dist/cjs/types/primitives/Toggle/index.d.ts +9 -0
  90. package/dist/cjs/types/primitives/ToggleSwitch/ToggleSwitch.d.ts +32 -0
  91. package/dist/cjs/types/primitives/ToggleSwitch/ToggleSwitch.props.d.ts +22 -0
  92. package/dist/cjs/types/primitives/ToggleSwitch/index.d.ts +8 -0
  93. package/dist/cjs/types/primitives/Tooltip/Tooltip.d.ts +35 -0
  94. package/dist/cjs/types/primitives/Tooltip/Tooltip.props.d.ts +17 -0
  95. package/dist/cjs/types/primitives/Tooltip/index.d.ts +8 -0
  96. package/dist/cjs/types/primitives/TooltipUtility.d.ts +12 -0
  97. package/dist/cjs/types/primitives/index.d.ts +24 -0
  98. package/dist/esm/index.js +2 -0
  99. package/dist/esm/index.js.map +1 -0
  100. package/dist/esm/types/components/FrontPanel/FrontPanel.d.ts +10 -0
  101. package/dist/esm/types/components/FrontPanel/FrontPanel.props.d.ts +23 -0
  102. package/dist/esm/types/components/FrontPanel/index.d.ts +7 -0
  103. package/dist/esm/types/components/FrontPanelIndicator/FrontPanelIndicator.d.ts +30 -0
  104. package/dist/esm/types/components/FrontPanelIndicator/FrontPanelIndicator.props.d.ts +17 -0
  105. package/dist/esm/types/components/FrontPanelIndicator/index.d.ts +8 -0
  106. package/dist/esm/types/components/FrontPanelNumberDisplay/FrontPanelNumberDisplay.d.ts +33 -0
  107. package/dist/esm/types/components/FrontPanelNumberDisplay/FrontPanelNumberDisplay.props.d.ts +23 -0
  108. package/dist/esm/types/components/FrontPanelNumberDisplay/index.d.ts +8 -0
  109. package/dist/esm/types/components/FrontPanelNumberEntry/FrontPanelNumberEntry.d.ts +33 -0
  110. package/dist/esm/types/components/FrontPanelNumberEntry/FrontPanelNumberEntry.props.d.ts +27 -0
  111. package/dist/esm/types/components/FrontPanelNumberEntry/index.d.ts +8 -0
  112. package/dist/esm/types/components/FrontPanelPushButton/FrontPanelPushButton.d.ts +31 -0
  113. package/dist/esm/types/components/FrontPanelPushButton/FrontPanelPushButton.props.d.ts +17 -0
  114. package/dist/esm/types/components/FrontPanelPushButton/index.d.ts +8 -0
  115. package/dist/esm/types/components/FrontPanelRangeSlider/FrontPanelRangeSlider.d.ts +31 -0
  116. package/dist/esm/types/components/FrontPanelRangeSlider/FrontPanelRangeSlider.props.d.ts +21 -0
  117. package/dist/esm/types/components/FrontPanelRangeSlider/index.d.ts +8 -0
  118. package/dist/esm/types/components/FrontPanelSelectEntry/FrontPanelSelectEntry.d.ts +17 -0
  119. package/dist/esm/types/components/FrontPanelSelectEntry/FrontPanelSelectEntryRoot.d.ts +43 -0
  120. package/dist/esm/types/components/FrontPanelSelectEntry/FrontPanelSelectEntryRoot.props.d.ts +21 -0
  121. package/dist/esm/types/components/FrontPanelSelectEntry/index.d.ts +15 -0
  122. package/dist/esm/types/components/FrontPanelToggleSwitch/FrontPanelToggleSwitch.d.ts +31 -0
  123. package/dist/esm/types/components/FrontPanelToggleSwitch/FrontPanelToggleSwitch.props.d.ts +17 -0
  124. package/dist/esm/types/components/FrontPanelToggleSwitch/index.d.ts +8 -0
  125. package/dist/esm/types/components/FrontPanelTriggerButton/FrontPanelTriggerButton.d.ts +32 -0
  126. package/dist/esm/types/components/FrontPanelTriggerButton/FrontPanelTriggerButton.props.d.ts +18 -0
  127. package/dist/esm/types/components/FrontPanelTriggerButton/index.d.ts +8 -0
  128. package/dist/esm/types/components/Icons/ChevronIcon.d.ts +17 -0
  129. package/dist/esm/types/components/Icons/IndicatorArrowIcon.d.ts +17 -0
  130. package/dist/esm/types/components/Icons/IndicatorBarIcon.d.ts +10 -0
  131. package/dist/esm/types/components/Icons/IndicatorStateIcon.d.ts +14 -0
  132. package/dist/esm/types/components/Icons/RadioToggleStateIcon.d.ts +14 -0
  133. package/dist/esm/types/components/Icons/SwitchToggleStateIcon.d.ts +14 -0
  134. package/dist/esm/types/components/Icons/index.d.ts +12 -0
  135. package/dist/esm/types/components/Icons/types.d.ts +17 -0
  136. package/dist/esm/types/components/index.d.ts +16 -0
  137. package/dist/esm/types/components/types.d.ts +11 -0
  138. package/dist/esm/types/contexts/FrontPanelContext.d.ts +15 -0
  139. package/dist/esm/types/contexts/index.d.ts +8 -0
  140. package/dist/esm/types/core/Binary.d.ts +7 -0
  141. package/dist/esm/types/core/Numeric.d.ts +80 -0
  142. package/dist/esm/types/core/Types.d.ts +34 -0
  143. package/dist/esm/types/core/index.d.ts +9 -0
  144. package/dist/esm/types/index.d.ts +10 -0
  145. package/dist/esm/types/primitives/Application/Application.d.ts +10 -0
  146. package/dist/esm/types/primitives/Application/Application.props.d.ts +10 -0
  147. package/dist/esm/types/primitives/Application/index.d.ts +1 -0
  148. package/dist/esm/types/primitives/Button/Button.d.ts +33 -0
  149. package/dist/esm/types/primitives/Button/Button.props.d.ts +44 -0
  150. package/dist/esm/types/primitives/Button/index.d.ts +3 -0
  151. package/dist/esm/types/primitives/DigitEntry/DigitEntry.d.ts +33 -0
  152. package/dist/esm/types/primitives/DigitEntry/DigitEntry.props.d.ts +51 -0
  153. package/dist/esm/types/primitives/DigitEntry/index.d.ts +9 -0
  154. package/dist/esm/types/primitives/Indicator/Indicator.d.ts +29 -0
  155. package/dist/esm/types/primitives/Indicator/Indicator.props.d.ts +35 -0
  156. package/dist/esm/types/primitives/Indicator/index.d.ts +9 -0
  157. package/dist/esm/types/primitives/Label/Label.d.ts +31 -0
  158. package/dist/esm/types/primitives/Label/Label.props.d.ts +33 -0
  159. package/dist/esm/types/primitives/Label/index.d.ts +9 -0
  160. package/dist/esm/types/primitives/NumberDisplay/NumberDisplay.d.ts +31 -0
  161. package/dist/esm/types/primitives/NumberDisplay/NumberDisplay.props.d.ts +52 -0
  162. package/dist/esm/types/primitives/NumberDisplay/index.d.ts +9 -0
  163. package/dist/esm/types/primitives/NumberEntry/NumberEntry.d.ts +34 -0
  164. package/dist/esm/types/primitives/NumberEntry/NumberEntry.props.d.ts +69 -0
  165. package/dist/esm/types/primitives/NumberEntry/NumberEntryDigits.d.ts +27 -0
  166. package/dist/esm/types/primitives/NumberEntry/NumberEntryDigits.props.d.ts +43 -0
  167. package/dist/esm/types/primitives/NumberEntry/index.d.ts +9 -0
  168. package/dist/esm/types/primitives/RangeSlider/RangeSlider.d.ts +33 -0
  169. package/dist/esm/types/primitives/RangeSlider/RangeSlider.props.d.ts +77 -0
  170. package/dist/esm/types/primitives/RangeSlider/index.d.ts +9 -0
  171. package/dist/esm/types/primitives/SelectEntry/SelectEntry.d.ts +17 -0
  172. package/dist/esm/types/primitives/SelectEntry/SelectEntryContent.d.ts +16 -0
  173. package/dist/esm/types/primitives/SelectEntry/SelectEntryGroup.d.ts +15 -0
  174. package/dist/esm/types/primitives/SelectEntry/SelectEntryItem.d.ts +15 -0
  175. package/dist/esm/types/primitives/SelectEntry/SelectEntryLabel.d.ts +15 -0
  176. package/dist/esm/types/primitives/SelectEntry/SelectEntryRoot.d.ts +39 -0
  177. package/dist/esm/types/primitives/SelectEntry/SelectEntryRoot.props.d.ts +31 -0
  178. package/dist/esm/types/primitives/SelectEntry/SelectEntrySeparator.d.ts +15 -0
  179. package/dist/esm/types/primitives/SelectEntry/SelectEntryTrigger.d.ts +16 -0
  180. package/dist/esm/types/primitives/SelectEntry/SelectEntryTrigger.props.d.ts +16 -0
  181. package/dist/esm/types/primitives/SelectEntry/index.d.ts +17 -0
  182. package/dist/esm/types/primitives/Toggle/Toggle.d.ts +35 -0
  183. package/dist/esm/types/primitives/Toggle/Toggle.props.d.ts +37 -0
  184. package/dist/esm/types/primitives/Toggle/index.d.ts +9 -0
  185. package/dist/esm/types/primitives/ToggleSwitch/ToggleSwitch.d.ts +32 -0
  186. package/dist/esm/types/primitives/ToggleSwitch/ToggleSwitch.props.d.ts +22 -0
  187. package/dist/esm/types/primitives/ToggleSwitch/index.d.ts +8 -0
  188. package/dist/esm/types/primitives/Tooltip/Tooltip.d.ts +35 -0
  189. package/dist/esm/types/primitives/Tooltip/Tooltip.props.d.ts +17 -0
  190. package/dist/esm/types/primitives/Tooltip/index.d.ts +8 -0
  191. package/dist/esm/types/primitives/TooltipUtility.d.ts +12 -0
  192. package/dist/esm/types/primitives/index.d.ts +24 -0
  193. package/dist/index.d.ts +1456 -0
  194. package/package.json +81 -0
  195. package/src/components/FrontPanel/FrontPanel.props.ts +25 -0
  196. package/src/components/FrontPanel/FrontPanel.tsx +33 -0
  197. package/src/components/FrontPanel/index.ts +8 -0
  198. package/src/components/FrontPanelIndicator/FrontPanelIndicator.css +0 -0
  199. package/src/components/FrontPanelIndicator/FrontPanelIndicator.props.ts +20 -0
  200. package/src/components/FrontPanelIndicator/FrontPanelIndicator.stories.tsx +44 -0
  201. package/src/components/FrontPanelIndicator/FrontPanelIndicator.tsx +81 -0
  202. package/src/components/FrontPanelIndicator/index.ts +10 -0
  203. package/src/components/FrontPanelNumberDisplay/FrontPanelNumberDisplay.css +0 -0
  204. package/src/components/FrontPanelNumberDisplay/FrontPanelNumberDisplay.props.ts +27 -0
  205. package/src/components/FrontPanelNumberDisplay/FrontPanelNumberDisplay.stories.tsx +67 -0
  206. package/src/components/FrontPanelNumberDisplay/FrontPanelNumberDisplay.tsx +130 -0
  207. package/src/components/FrontPanelNumberDisplay/index.ts +10 -0
  208. package/src/components/FrontPanelNumberEntry/FrontPanelNumberEntry.css +0 -0
  209. package/src/components/FrontPanelNumberEntry/FrontPanelNumberEntry.props.ts +32 -0
  210. package/src/components/FrontPanelNumberEntry/FrontPanelNumberEntry.stories.tsx +104 -0
  211. package/src/components/FrontPanelNumberEntry/FrontPanelNumberEntry.tsx +195 -0
  212. package/src/components/FrontPanelNumberEntry/index.ts +10 -0
  213. package/src/components/FrontPanelPushButton/FrontPanelPushButton.css +0 -0
  214. package/src/components/FrontPanelPushButton/FrontPanelPushButton.props.ts +20 -0
  215. package/src/components/FrontPanelPushButton/FrontPanelPushButton.stories.tsx +46 -0
  216. package/src/components/FrontPanelPushButton/FrontPanelPushButton.tsx +80 -0
  217. package/src/components/FrontPanelPushButton/index.ts +10 -0
  218. package/src/components/FrontPanelRangeSlider/FrontPanelRangeSlider.css +0 -0
  219. package/src/components/FrontPanelRangeSlider/FrontPanelRangeSlider.props.ts +25 -0
  220. package/src/components/FrontPanelRangeSlider/FrontPanelRangeSlider.stories.tsx +92 -0
  221. package/src/components/FrontPanelRangeSlider/FrontPanelRangeSlider.tsx +108 -0
  222. package/src/components/FrontPanelRangeSlider/index.ts +10 -0
  223. package/src/components/FrontPanelSelectEntry/FrontPanelSelectEntry.css +0 -0
  224. package/src/components/FrontPanelSelectEntry/FrontPanelSelectEntry.stories.tsx +107 -0
  225. package/src/components/FrontPanelSelectEntry/FrontPanelSelectEntry.tsx +30 -0
  226. package/src/components/FrontPanelSelectEntry/FrontPanelSelectEntryRoot.props.ts +25 -0
  227. package/src/components/FrontPanelSelectEntry/FrontPanelSelectEntryRoot.tsx +175 -0
  228. package/src/components/FrontPanelSelectEntry/index.ts +17 -0
  229. package/src/components/FrontPanelToggleSwitch/FrontPanelToggleSwitch.css +0 -0
  230. package/src/components/FrontPanelToggleSwitch/FrontPanelToggleSwitch.props.ts +20 -0
  231. package/src/components/FrontPanelToggleSwitch/FrontPanelToggleSwitch.stories.tsx +46 -0
  232. package/src/components/FrontPanelToggleSwitch/FrontPanelToggleSwitch.tsx +108 -0
  233. package/src/components/FrontPanelToggleSwitch/index.ts +10 -0
  234. package/src/components/FrontPanelTriggerButton/FrontPanelTriggerButton.css +0 -0
  235. package/src/components/FrontPanelTriggerButton/FrontPanelTriggerButton.props.ts +21 -0
  236. package/src/components/FrontPanelTriggerButton/FrontPanelTriggerButton.stories.tsx +46 -0
  237. package/src/components/FrontPanelTriggerButton/FrontPanelTriggerButton.tsx +65 -0
  238. package/src/components/FrontPanelTriggerButton/index.ts +10 -0
  239. package/src/components/Icons/ChevronIcon.tsx +69 -0
  240. package/src/components/Icons/IndicatorArrowIcon.tsx +59 -0
  241. package/src/components/Icons/IndicatorBarIcon.tsx +34 -0
  242. package/src/components/Icons/IndicatorStateIcon.tsx +82 -0
  243. package/src/components/Icons/RadioToggleStateIcon.tsx +62 -0
  244. package/src/components/Icons/SwitchToggleStateIcon.tsx +68 -0
  245. package/src/components/Icons/index.ts +15 -0
  246. package/src/components/Icons/types.ts +20 -0
  247. package/src/components/index.ts +31 -0
  248. package/src/components/types.ts +13 -0
  249. package/src/contexts/FrontPanelContext.ts +23 -0
  250. package/src/contexts/index.ts +10 -0
  251. package/src/core/Binary.ts +23 -0
  252. package/src/core/Numeric.ts +168 -0
  253. package/src/core/Types.ts +39 -0
  254. package/src/core/index.ts +11 -0
  255. package/src/fonts/Inter-VariableFont_slnt,wght.ttf +0 -0
  256. package/src/index.css +11 -0
  257. package/src/index.ts +11 -0
  258. package/src/primitives/Application/Application.props.ts +10 -0
  259. package/src/primitives/Application/Application.tsx +24 -0
  260. package/src/primitives/Application/index.ts +1 -0
  261. package/src/primitives/Button/Button.css +60 -0
  262. package/src/primitives/Button/Button.props.ts +53 -0
  263. package/src/primitives/Button/Button.stories.tsx +54 -0
  264. package/src/primitives/Button/Button.tsx +75 -0
  265. package/src/primitives/Button/index.ts +4 -0
  266. package/src/primitives/DigitEntry/DigitEntry.css +120 -0
  267. package/src/primitives/DigitEntry/DigitEntry.props.ts +62 -0
  268. package/src/primitives/DigitEntry/DigitEntry.stories.tsx +84 -0
  269. package/src/primitives/DigitEntry/DigitEntry.tsx +226 -0
  270. package/src/primitives/DigitEntry/index.ts +15 -0
  271. package/src/primitives/Indicator/Indicator.css +66 -0
  272. package/src/primitives/Indicator/Indicator.props.ts +42 -0
  273. package/src/primitives/Indicator/Indicator.stories.tsx +44 -0
  274. package/src/primitives/Indicator/Indicator.tsx +64 -0
  275. package/src/primitives/Indicator/index.ts +11 -0
  276. package/src/primitives/Label/Label.css +49 -0
  277. package/src/primitives/Label/Label.props.ts +38 -0
  278. package/src/primitives/Label/Label.stories.tsx +53 -0
  279. package/src/primitives/Label/Label.tsx +66 -0
  280. package/src/primitives/Label/index.ts +11 -0
  281. package/src/primitives/NumberDisplay/NumberDisplay.css +63 -0
  282. package/src/primitives/NumberDisplay/NumberDisplay.props.ts +65 -0
  283. package/src/primitives/NumberDisplay/NumberDisplay.stories.tsx +83 -0
  284. package/src/primitives/NumberDisplay/NumberDisplay.tsx +155 -0
  285. package/src/primitives/NumberDisplay/index.ts +11 -0
  286. package/src/primitives/NumberEntry/NumberEntry.css +71 -0
  287. package/src/primitives/NumberEntry/NumberEntry.props.ts +86 -0
  288. package/src/primitives/NumberEntry/NumberEntry.stories.tsx +129 -0
  289. package/src/primitives/NumberEntry/NumberEntry.tsx +249 -0
  290. package/src/primitives/NumberEntry/NumberEntryDigits.props.ts +57 -0
  291. package/src/primitives/NumberEntry/NumberEntryDigits.tsx +117 -0
  292. package/src/primitives/NumberEntry/index.ts +11 -0
  293. package/src/primitives/RangeSlider/RangeSlider.css +110 -0
  294. package/src/primitives/RangeSlider/RangeSlider.props.ts +93 -0
  295. package/src/primitives/RangeSlider/RangeSlider.stories.tsx +76 -0
  296. package/src/primitives/RangeSlider/RangeSlider.tsx +168 -0
  297. package/src/primitives/RangeSlider/index.ts +14 -0
  298. package/src/primitives/SelectEntry/SelectEntry.stories.tsx +86 -0
  299. package/src/primitives/SelectEntry/SelectEntry.tsx +29 -0
  300. package/src/primitives/SelectEntry/SelectEntryContent.css +94 -0
  301. package/src/primitives/SelectEntry/SelectEntryContent.tsx +63 -0
  302. package/src/primitives/SelectEntry/SelectEntryGroup.css +17 -0
  303. package/src/primitives/SelectEntry/SelectEntryGroup.tsx +37 -0
  304. package/src/primitives/SelectEntry/SelectEntryItem.css +35 -0
  305. package/src/primitives/SelectEntry/SelectEntryItem.tsx +51 -0
  306. package/src/primitives/SelectEntry/SelectEntryLabel.css +16 -0
  307. package/src/primitives/SelectEntry/SelectEntryLabel.tsx +43 -0
  308. package/src/primitives/SelectEntry/SelectEntryRoot.css +10 -0
  309. package/src/primitives/SelectEntry/SelectEntryRoot.props.ts +38 -0
  310. package/src/primitives/SelectEntry/SelectEntryRoot.tsx +69 -0
  311. package/src/primitives/SelectEntry/SelectEntrySeparator.css +12 -0
  312. package/src/primitives/SelectEntry/SelectEntrySeparator.tsx +38 -0
  313. package/src/primitives/SelectEntry/SelectEntryTrigger.css +49 -0
  314. package/src/primitives/SelectEntry/SelectEntryTrigger.props.ts +18 -0
  315. package/src/primitives/SelectEntry/SelectEntryTrigger.tsx +111 -0
  316. package/src/primitives/SelectEntry/index.ts +20 -0
  317. package/src/primitives/Toggle/Toggle.css +67 -0
  318. package/src/primitives/Toggle/Toggle.props.ts +44 -0
  319. package/src/primitives/Toggle/Toggle.stories.tsx +61 -0
  320. package/src/primitives/Toggle/Toggle.tsx +90 -0
  321. package/src/primitives/Toggle/index.ts +11 -0
  322. package/src/primitives/ToggleSwitch/ToggleSwitch.css +118 -0
  323. package/src/primitives/ToggleSwitch/ToggleSwitch.props.ts +26 -0
  324. package/src/primitives/ToggleSwitch/ToggleSwitch.stories.tsx +85 -0
  325. package/src/primitives/ToggleSwitch/ToggleSwitch.tsx +73 -0
  326. package/src/primitives/ToggleSwitch/index.ts +10 -0
  327. package/src/primitives/Tooltip/Tooltip.css +93 -0
  328. package/src/primitives/Tooltip/Tooltip.props.ts +20 -0
  329. package/src/primitives/Tooltip/Tooltip.tsx +91 -0
  330. package/src/primitives/Tooltip/index.ts +10 -0
  331. package/src/primitives/TooltipUtility.tsx +24 -0
  332. package/src/primitives/index.ts +44 -0
  333. package/src/stories/decorators/Application.decorator.tsx +20 -0
  334. package/src/stories/decorators/FrontPanel.decorator.tsx +47 -0
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import { EndpointAddressProps } from "../types";
9
+
10
+ /**
11
+ * Interface for the properties of the FrontPanelTriggerButton component.
12
+ * This interface extends the properties of the TriggerButton component.
13
+ */
14
+ interface FrontPanelTriggerButtonProps {
15
+ /**
16
+ * Address of the frontpanel endpoint
17
+ */
18
+ fpEndpoint: EndpointAddressProps;
19
+ }
20
+
21
+ export default FrontPanelTriggerButtonProps;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import type { Meta, StoryObj } from "@storybook/react";
9
+
10
+ import withApplication from "../../stories/decorators/Application.decorator";
11
+ import withFrontPanel from "../../stories/decorators/FrontPanel.decorator";
12
+
13
+ import FrontPanelTriggerButton from "./FrontPanelTriggerButton";
14
+
15
+ // Configure Story metadata
16
+ const meta = {
17
+ title: "Components/FrontPanel/FrontPanelTriggerButton",
18
+ component: FrontPanelTriggerButton,
19
+ parameters: {
20
+ layout: "centered" // Center the component in the Canvas
21
+ },
22
+ tags: ["autodocs"], // Automatically generate documentation
23
+ argTypes: {
24
+ size: {
25
+ control: { type: "range", min: 1, max: 3, step: 1 }
26
+ },
27
+ disabled: { control: "boolean" }
28
+ }
29
+ } satisfies Meta<typeof FrontPanelTriggerButton>;
30
+
31
+ export default meta;
32
+
33
+ type Story = StoryObj<typeof meta>;
34
+
35
+ // Primary Story
36
+ export const Primary: Story = {
37
+ decorators: [withApplication, withFrontPanel],
38
+ args: {
39
+ label: "Trigger",
40
+ fpEndpoint: { epAddress: 0x40, bitOffset: 1 },
41
+ // Optional Properties
42
+ disabled: false,
43
+ size: 1,
44
+ tooltip: "Trigger endpoint"
45
+ }
46
+ };
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import React from "react";
9
+
10
+ import "./FrontPanelTriggerButton.css";
11
+
12
+ import FrontPanelTriggerButtonProps from "./FrontPanelTriggerButton.props";
13
+
14
+ import Button from "../../primitives/Button";
15
+
16
+ import { FrontPanelContext } from "../../contexts";
17
+
18
+ type FrontPanelTriggerButtonElement = React.ElementRef<typeof Button>;
19
+
20
+ interface FrontPanelTriggerButtonCombinedProps
21
+ extends Omit<
22
+ React.ComponentPropsWithoutRef<typeof Button>,
23
+ "asChild" | "onButtonClick" | "onButtonDown" | "onButtonUp"
24
+ >,
25
+ FrontPanelTriggerButtonProps {}
26
+
27
+ export type { FrontPanelTriggerButtonCombinedProps };
28
+
29
+ /**
30
+ * `FrontPanelTriggerButton` is a React component that renders a trigger button that asserts a TriggerIn endpoint when
31
+ * it is pressed.
32
+ *
33
+ * @component
34
+ * @param {Object} props - Properties passed to component
35
+ * @param {React.Ref<FrontPanelTriggerButtonElement>} forwardedRef - Forwarded ref for the button
36
+ *
37
+ * @returns {React.ReactElement} The rendered FrontPanelTriggerButton component
38
+ *
39
+ * @example
40
+ * ```jsx
41
+ * <FrontPanelTriggerButton
42
+ * label="Trigger"
43
+ * fpEndpoint={{epAddress: 0x00, bitOffset: 1}} />
44
+ * ```
45
+ */
46
+ const FrontPanelTriggerButton = React.forwardRef<
47
+ FrontPanelTriggerButtonElement,
48
+ FrontPanelTriggerButtonCombinedProps
49
+ >((props, forwardedRef) => {
50
+ const { device, workQueue } = React.useContext(FrontPanelContext);
51
+
52
+ const { fpEndpoint, ...buttonProps } = props;
53
+
54
+ const onButtonDown = React.useCallback(async (): Promise<void> => {
55
+ await workQueue.Post(async () => {
56
+ await device.activateTriggerIn(fpEndpoint.epAddress, fpEndpoint.bitOffset);
57
+ });
58
+ }, [device, fpEndpoint]);
59
+
60
+ return <Button {...buttonProps} ref={forwardedRef} onButtonDown={onButtonDown} />;
61
+ });
62
+
63
+ FrontPanelTriggerButton.displayName = "FrontPanelTriggerButton";
64
+
65
+ export default FrontPanelTriggerButton;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ export { default } from "./FrontPanelTriggerButton";
9
+
10
+ export { default as FrontPanelTriggerButtonProps } from "./FrontPanelTriggerButton.props";
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import * as React from "react";
9
+
10
+ import { IconProps } from "./types";
11
+
12
+ export enum ChevronDirection {
13
+ Up,
14
+ Down
15
+ }
16
+
17
+ export interface ChevronIconProps extends IconProps {
18
+ direction: ChevronDirection;
19
+ }
20
+
21
+ const DirectionChevron = (direction: ChevronDirection, color: string): React.ReactNode => {
22
+ let arrow: React.ReactNode;
23
+
24
+ if (direction === ChevronDirection.Up) {
25
+ arrow = (
26
+ <path
27
+ d="M6.75593 7.12713C6.35716 7.58759 5.64284 7.58759 5.24407 7.12713L2.23682 3.65465C1.67594 3.00701 2.136 2 2.99275 2L9.00725 2C9.864 2 10.3241 3.00701 9.76318 3.65465L6.75593 7.12713Z"
28
+ fill={color}
29
+ />
30
+ );
31
+ } else if (direction === ChevronDirection.Down) {
32
+ arrow = (
33
+ <path
34
+ d="M6.75593 7.12713C6.35716 7.58759 5.64284 7.58759 5.24407 7.12713L2.23682 3.65465C1.67594 3.00701 2.136 2 2.99275 2L9.00725 2C9.864 2 10.3241 3.00701 9.76318 3.65465L6.75593 7.12713Z"
35
+ fill={color}
36
+ />
37
+ );
38
+ } else {
39
+ arrow = (
40
+ <path
41
+ d="M6.75593 7.12713C6.35716 7.58759 5.64284 7.58759 5.24407 7.12713L2.23682 3.65465C1.67594 3.00701 2.136 2 2.99275 2L9.00725 2C9.864 2 10.3241 3.00701 9.76318 3.65465L6.75593 7.12713Z"
42
+ fill={color}
43
+ />
44
+ );
45
+ }
46
+
47
+ return arrow;
48
+ };
49
+
50
+ const ChevronIcon = React.forwardRef<SVGSVGElement, ChevronIconProps>((props, forwardedRef) => {
51
+ const { direction = ChevronDirection.Down, color = "#343434", ...iconProps } = props;
52
+
53
+ return (
54
+ <svg
55
+ xmlns="http://www.w3.org/2000/svg"
56
+ width="12"
57
+ height="8"
58
+ viewBox="0 0 12 8"
59
+ fill="none"
60
+ {...iconProps}
61
+ ref={forwardedRef}>
62
+ {DirectionChevron(direction, color)}
63
+ </svg>
64
+ );
65
+ });
66
+
67
+ export default ChevronIcon;
68
+
69
+ ChevronIcon.displayName = "ChevronIcon";
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import * as React from "react";
9
+
10
+ import { IconProps } from "./types";
11
+
12
+ export enum IndicatorArrowDirection {
13
+ Up,
14
+ Down
15
+ }
16
+
17
+ export interface IndicatorArrowIconProps extends IconProps {
18
+ direction: IndicatorArrowDirection;
19
+ }
20
+
21
+ const IndicatorArrow = (direction: IndicatorArrowDirection, color: string): React.ReactNode => {
22
+ let arrow: React.ReactNode;
23
+
24
+ switch (direction) {
25
+ case IndicatorArrowDirection.Up:
26
+ arrow = <path d="M5 5.1656e-07L10 4L0 4L5 5.1656e-07Z" fill={color} />;
27
+ break;
28
+ case IndicatorArrowDirection.Down:
29
+ arrow = <path d="M5 4L0 0L10 8.88334e-07L5 4Z" fill={color} />;
30
+ break;
31
+ default:
32
+ arrow = <path d="M5 5.1656e-07L10 4L0 4L5 5.1656e-07Z" fill={color} />;
33
+ break;
34
+ }
35
+
36
+ return arrow;
37
+ };
38
+
39
+ const IndicatorArrowIcon = React.forwardRef<SVGSVGElement, IndicatorArrowIconProps>(
40
+ (props, forwardedRef) => {
41
+ const { direction = IndicatorArrowDirection.Down, color = "#343434", ...iconProps } = props;
42
+ return (
43
+ <svg
44
+ xmlns="http://www.w3.org/2000/svg"
45
+ width="10"
46
+ height="4"
47
+ viewBox="0 0 10 4"
48
+ fill="none"
49
+ {...iconProps}
50
+ ref={forwardedRef}>
51
+ {IndicatorArrow(direction, color)}
52
+ </svg>
53
+ );
54
+ }
55
+ );
56
+
57
+ export default IndicatorArrowIcon;
58
+
59
+ IndicatorArrowIcon.displayName = "IndicatorArrowIcon";
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import * as React from "react";
9
+
10
+ import { IconProps } from "./types";
11
+
12
+ const IndicatorBarIcon = React.forwardRef<SVGSVGElement, IconProps>((props, forwardedRef) => {
13
+ const { color = "#343434", ...iconProps } = props;
14
+
15
+ return (
16
+ <svg
17
+ xmlns="http://www.w3.org/2000/svg"
18
+ width="10"
19
+ height="1"
20
+ viewBox="0 0 10 1"
21
+ fill="none"
22
+ {...iconProps}
23
+ ref={forwardedRef}>
24
+ <path
25
+ d="M8.74228e-08 -8.74228e-07L10 -9.53674e-07L10 1L0 0.999999L8.74228e-08 -8.74228e-07Z"
26
+ fill={color}
27
+ />
28
+ </svg>
29
+ );
30
+ });
31
+
32
+ export default IndicatorBarIcon;
33
+
34
+ IndicatorBarIcon.displayName = "IndicatorBarIcon";
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import * as React from "react";
9
+
10
+ import { StateIconProps } from "./types";
11
+
12
+ import { ToggleState } from "../../core";
13
+
14
+ export interface IndicatorStateIconProps extends StateIconProps {
15
+ state: ToggleState;
16
+ }
17
+
18
+ const StateIcon = (
19
+ state: ToggleState,
20
+ color: string,
21
+ colorOnState: string,
22
+ colorOffState: string
23
+ ): React.ReactNode => {
24
+ let icon: React.ReactNode;
25
+
26
+ switch (state) {
27
+ case ToggleState.On:
28
+ icon = (
29
+ <path
30
+ d="M5 10C7.76142 10 10 7.76142 10 5C10 2.23858 7.76142 0 5 0C2.23858 0 0 2.23858 0 5C0 7.76142 2.23858 10 5 10Z"
31
+ fill={colorOnState}
32
+ />
33
+ );
34
+ break;
35
+ case ToggleState.Off:
36
+ icon = (
37
+ <path
38
+ d="M5 10C7.76142 10 10 7.76142 10 5C10 2.23858 7.76142 0 5 0C2.23858 0 0 2.23858 0 5C0 7.76142 2.23858 10 5 10Z"
39
+ fill={colorOffState}
40
+ />
41
+ );
42
+ break;
43
+ default:
44
+ icon = (
45
+ <path
46
+ d="M5 10C7.76142 10 10 7.76142 10 5C10 2.23858 7.76142 0 5 0C2.23858 0 0 2.23858 0 5C0 7.76142 2.23858 10 5 10Z"
47
+ fill={color}
48
+ />
49
+ );
50
+ break;
51
+ }
52
+
53
+ return icon;
54
+ };
55
+
56
+ const IndicatorStateIcon = React.forwardRef<SVGSVGElement, IndicatorStateIconProps>(
57
+ (props, forwardedRef) => {
58
+ const {
59
+ state,
60
+ color = "#D0D7DF",
61
+ colorOnState = "#44BD84",
62
+ colorOffState = "#D0D7DF"
63
+ } = props;
64
+
65
+ return (
66
+ <svg
67
+ xmlns="http://www.w3.org/2000/svg"
68
+ width="10"
69
+ height="10"
70
+ viewBox="0 0 10 10"
71
+ fill="none"
72
+ {...props}
73
+ ref={forwardedRef}>
74
+ {StateIcon(state, color, colorOnState, colorOffState)}
75
+ </svg>
76
+ );
77
+ }
78
+ );
79
+
80
+ export default IndicatorStateIcon;
81
+
82
+ IndicatorStateIcon.displayName = "IndicatorStateIcon";
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import * as React from "react";
9
+
10
+ import { StateIconProps } from "./types";
11
+
12
+ import { ToggleState } from "../../core";
13
+
14
+ export interface RadioToggleStateIconProps extends StateIconProps {
15
+ state: ToggleState;
16
+ }
17
+
18
+ const StateIcon = (state: ToggleState, color: string, colorOnState: string): React.ReactNode => {
19
+ let icon: React.ReactNode;
20
+
21
+ switch (state) {
22
+ case ToggleState.On:
23
+ icon = (
24
+ <>
25
+ <circle cx="7" cy="7" r="6" stroke={color} strokeWidth="2" />
26
+ <circle cx="7" cy="7" r="3" fill={colorOnState} />
27
+ </>
28
+ );
29
+ break;
30
+ case ToggleState.Off:
31
+ icon = <circle cx="7" cy="7" r="6" stroke={color} strokeWidth="2" />;
32
+ break;
33
+ default:
34
+ icon = <circle cx="7" cy="7" r="6" stroke={color} strokeWidth="2" />;
35
+ break;
36
+ }
37
+
38
+ return icon;
39
+ };
40
+
41
+ const RadioToggleStateIcon = React.forwardRef<SVGSVGElement, RadioToggleStateIconProps>(
42
+ (props, forwardedRef) => {
43
+ const { state, color = "#343434", colorOnState = "#44BD84", ...iconProps } = props;
44
+
45
+ return (
46
+ <svg
47
+ xmlns="http://www.w3.org/2000/svg"
48
+ width="14"
49
+ height="14"
50
+ viewBox="0 0 14 14"
51
+ fill="none"
52
+ {...iconProps}
53
+ ref={forwardedRef}>
54
+ {StateIcon(state, color, colorOnState)}
55
+ </svg>
56
+ );
57
+ }
58
+ );
59
+
60
+ export default RadioToggleStateIcon;
61
+
62
+ RadioToggleStateIcon.displayName = "RadioToggleStateIcon";
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import * as React from "react";
9
+
10
+ import { StateIconProps } from "./types";
11
+
12
+ import { ToggleState } from "../../core";
13
+
14
+ export interface SwitchToggleStateIconProps extends StateIconProps {
15
+ state: ToggleState;
16
+ }
17
+
18
+ const StateIcon = (
19
+ state: ToggleState,
20
+ color: string,
21
+ colorOnState: string,
22
+ colorOffState: string
23
+ ): React.ReactNode => {
24
+ let icon: React.ReactNode;
25
+
26
+ switch (state) {
27
+ case ToggleState.On:
28
+ icon = <circle cx="4" cy="4" r="3.75" fill={colorOnState} />;
29
+ break;
30
+ case ToggleState.Off:
31
+ icon = <circle cx="4" cy="4" r="3.75" fill={colorOffState} />;
32
+ break;
33
+ default:
34
+ icon = <circle cx="4" cy="4" r="3.75" fill={color} />;
35
+ break;
36
+ }
37
+
38
+ return icon;
39
+ };
40
+
41
+ const SwitchToggleStateIcon = React.forwardRef<SVGSVGElement, SwitchToggleStateIconProps>(
42
+ (props, forwardedRef) => {
43
+ const {
44
+ state,
45
+ color = "white",
46
+ colorOnState = "white",
47
+ colorOffState = "white",
48
+ ...iconProps
49
+ } = props;
50
+
51
+ return (
52
+ <svg
53
+ xmlns="http://www.w3.org/2000/svg"
54
+ width="8"
55
+ height="8"
56
+ viewBox="0 0 8 8"
57
+ fill="none"
58
+ {...iconProps}
59
+ ref={forwardedRef}>
60
+ {StateIcon(state, color, colorOnState, colorOffState)}
61
+ </svg>
62
+ );
63
+ }
64
+ );
65
+
66
+ export default SwitchToggleStateIcon;
67
+
68
+ SwitchToggleStateIcon.displayName = "SwitchToggleStateIcon";
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ export { default as ChevronIcon, ChevronDirection } from "./ChevronIcon";
9
+
10
+ export { default as IndicatorArrowIcon, IndicatorArrowDirection } from "./IndicatorArrowIcon";
11
+ export { default as IndicatorBarIcon } from "./IndicatorBarIcon";
12
+ export { default as IndicatorStateIcon } from "./IndicatorStateIcon";
13
+
14
+ export { default as RadioToggleStateIcon } from "./RadioToggleStateIcon";
15
+ export { default as SwitchToggleStateIcon } from "./SwitchToggleStateIcon";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import * as React from "react";
9
+
10
+ export interface IconProps extends React.SVGAttributes<SVGElement> {
11
+ children?: never;
12
+ color?: string;
13
+ }
14
+
15
+ export interface StateIconProps extends React.SVGAttributes<SVGElement> {
16
+ children?: never;
17
+ color?: string;
18
+ colorOnState?: string;
19
+ colorOffState?: string;
20
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ export { EndpointAddressProps } from "./types";
9
+
10
+ export { default as FrontPanel } from "./FrontPanel";
11
+
12
+ export { default as FrontPanelNumberEntry } from "./FrontPanelNumberEntry";
13
+ export { default as FrontPanelNumberDisplay } from "./FrontPanelNumberDisplay";
14
+
15
+ export { default as FrontPanelIndicator } from "./FrontPanelIndicator";
16
+ export { default as FrontPanelPushButton } from "./FrontPanelPushButton";
17
+ export { default as FrontPanelToggleSwitch } from "./FrontPanelToggleSwitch";
18
+ export { default as FrontPanelTriggerButton } from "./FrontPanelTriggerButton";
19
+
20
+ export { default as FrontPanelRangeSlider } from "./FrontPanelRangeSlider";
21
+
22
+ export {
23
+ FrontPanelSelectEntry,
24
+ FrontPanelSelectEntryRoot
25
+ //SelectEntryTrigger,
26
+ //SelectEntryContent,
27
+ //SelectEntryItem,
28
+ //SelectEntryGroup,
29
+ //SelectEntryLabel,
30
+ //SelectEntrySeparator
31
+ } from "./FrontPanelSelectEntry";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import { BitCount } from "@opalkelly/frontpanel-alloy-core";
9
+
10
+ export interface EndpointAddressProps {
11
+ epAddress: number;
12
+ bitOffset: BitCount;
13
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ import React from "react";
9
+
10
+ import { IFrontPanel, IFrontPanelEventSource, WorkQueue } from "@opalkelly/frontpanel-alloy-core";
11
+
12
+ export type FrontPanelContextValue = {
13
+ device: IFrontPanel;
14
+ workQueue: WorkQueue;
15
+ eventSource?: IFrontPanelEventSource;
16
+ };
17
+
18
+ const FrontPanelContext = React.createContext<FrontPanelContextValue>({
19
+ device: window.FrontPanel,
20
+ workQueue: new WorkQueue()
21
+ });
22
+
23
+ export default FrontPanelContext;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ export { default as FrontPanelContext } from "./FrontPanelContext";
9
+
10
+ export { FrontPanelContextValue } from "./FrontPanelContext";
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright (c) 2024 Opal Kelly Incorporated
3
+ *
4
+ * This source code is licensed under the FrontPanel license.
5
+ * See the LICENSE file found in the root directory of this project.
6
+ */
7
+
8
+ export function CalculateBitLength(value: bigint): number {
9
+ let bitLength = 0;
10
+
11
+ if (value > 0n) {
12
+ let targetValue = value;
13
+
14
+ while (targetValue > 0n) {
15
+ targetValue >>= 1n; // Divide by 2
16
+ bitLength++;
17
+ }
18
+ } else if (value === 0n) {
19
+ bitLength = 1;
20
+ }
21
+
22
+ return bitLength;
23
+ }