@buoy-gg/floating-tools-core 7.0.33 → 7.0.35

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 (149) hide show
  1. package/lib/commonjs/dial.js +3 -2
  2. package/lib/commonjs/fonts.js +31 -0
  3. package/lib/commonjs/icons/generated/glyph-icons.g.js +299 -0
  4. package/lib/commonjs/icons/generated/icon-data.g.js +89 -110
  5. package/lib/commonjs/icons/icon-primitives.js +32 -12
  6. package/lib/commonjs/icons/icon-primitives.native.js +50 -32
  7. package/lib/commonjs/icons/icon-renderer.js +31 -10
  8. package/lib/commonjs/icons/iconGlow.js +32 -0
  9. package/lib/commonjs/index.js +169 -0
  10. package/lib/module/dial.js +3 -2
  11. package/lib/module/fonts.js +28 -0
  12. package/lib/module/icons/generated/glyph-icons.g.js +296 -0
  13. package/lib/module/icons/generated/icon-data.g.js +89 -110
  14. package/lib/module/icons/icon-primitives.js +32 -12
  15. package/lib/module/icons/icon-primitives.native.js +50 -32
  16. package/lib/module/icons/icon-renderer.js +31 -10
  17. package/lib/module/icons/iconGlow.js +28 -0
  18. package/lib/module/index.js +9 -0
  19. package/lib/typescript/commonjs/dial.d.ts +2 -2
  20. package/lib/typescript/commonjs/dial.d.ts.map +1 -1
  21. package/lib/typescript/commonjs/fonts.d.ts +20 -0
  22. package/lib/typescript/commonjs/fonts.d.ts.map +1 -0
  23. package/lib/typescript/commonjs/icons/ask-buoy-icon.d.ts +1 -1
  24. package/lib/typescript/commonjs/icons/ask-buoy-icon.d.ts.map +1 -1
  25. package/lib/typescript/commonjs/icons/assets-icon.d.ts +1 -1
  26. package/lib/typescript/commonjs/icons/assets-icon.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/icons/benchmark-icon.d.ts +1 -1
  28. package/lib/typescript/commonjs/icons/benchmark-icon.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/icons/camera-icon.d.ts +1 -1
  30. package/lib/typescript/commonjs/icons/camera-icon.d.ts.map +1 -1
  31. package/lib/typescript/commonjs/icons/console-icon.d.ts +1 -1
  32. package/lib/typescript/commonjs/icons/console-icon.d.ts.map +1 -1
  33. package/lib/typescript/commonjs/icons/env-icon.d.ts +1 -1
  34. package/lib/typescript/commonjs/icons/env-icon.d.ts.map +1 -1
  35. package/lib/typescript/commonjs/icons/events-icon.d.ts +1 -1
  36. package/lib/typescript/commonjs/icons/events-icon.d.ts.map +1 -1
  37. package/lib/typescript/commonjs/icons/generated/glyph-icons.g.d.ts +145 -0
  38. package/lib/typescript/commonjs/icons/generated/glyph-icons.g.d.ts.map +1 -0
  39. package/lib/typescript/commonjs/icons/generated/icon-data.g.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/icons/highlight-icon.d.ts +1 -1
  41. package/lib/typescript/commonjs/icons/highlight-icon.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/icons/icon-primitives.d.ts +3 -1
  43. package/lib/typescript/commonjs/icons/icon-primitives.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/icons/icon-primitives.native.d.ts +7 -0
  45. package/lib/typescript/commonjs/icons/icon-primitives.native.d.ts.map +1 -1
  46. package/lib/typescript/commonjs/icons/icon-renderer.d.ts +33 -3
  47. package/lib/typescript/commonjs/icons/icon-renderer.d.ts.map +1 -1
  48. package/lib/typescript/commonjs/icons/iconGlow.d.ts +27 -0
  49. package/lib/typescript/commonjs/icons/iconGlow.d.ts.map +1 -0
  50. package/lib/typescript/commonjs/icons/image-overlay-icon.d.ts +1 -1
  51. package/lib/typescript/commonjs/icons/image-overlay-icon.d.ts.map +1 -1
  52. package/lib/typescript/commonjs/icons/images-icon.d.ts +1 -1
  53. package/lib/typescript/commonjs/icons/images-icon.d.ts.map +1 -1
  54. package/lib/typescript/commonjs/icons/impersonate-icon.d.ts +1 -1
  55. package/lib/typescript/commonjs/icons/impersonate-icon.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/icons/jotai-icon.d.ts +1 -1
  57. package/lib/typescript/commonjs/icons/jotai-icon.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/icons/network-icon.d.ts +1 -1
  59. package/lib/typescript/commonjs/icons/network-icon.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/icons/query-icon.d.ts +1 -1
  61. package/lib/typescript/commonjs/icons/query-icon.d.ts.map +1 -1
  62. package/lib/typescript/commonjs/icons/redux-icon.d.ts +1 -1
  63. package/lib/typescript/commonjs/icons/redux-icon.d.ts.map +1 -1
  64. package/lib/typescript/commonjs/icons/renders-icon.d.ts +2 -2
  65. package/lib/typescript/commonjs/icons/renders-icon.d.ts.map +1 -1
  66. package/lib/typescript/commonjs/icons/riverpod-icon.d.ts +1 -1
  67. package/lib/typescript/commonjs/icons/riverpod-icon.d.ts.map +1 -1
  68. package/lib/typescript/commonjs/icons/routes-icon.d.ts +21 -21
  69. package/lib/typescript/commonjs/icons/routes-icon.d.ts.map +1 -1
  70. package/lib/typescript/commonjs/icons/scenarios-icon.d.ts +1 -1
  71. package/lib/typescript/commonjs/icons/scenarios-icon.d.ts.map +1 -1
  72. package/lib/typescript/commonjs/icons/sentry-icon.d.ts +1 -1
  73. package/lib/typescript/commonjs/icons/sentry-icon.d.ts.map +1 -1
  74. package/lib/typescript/commonjs/icons/storage-icon.d.ts +1 -1
  75. package/lib/typescript/commonjs/icons/storage-icon.d.ts.map +1 -1
  76. package/lib/typescript/commonjs/icons/time-machine-icon.d.ts +1 -1
  77. package/lib/typescript/commonjs/icons/time-machine-icon.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/icons/wifi-icon.d.ts +1 -1
  79. package/lib/typescript/commonjs/icons/wifi-icon.d.ts.map +1 -1
  80. package/lib/typescript/commonjs/icons/zustand-icon.d.ts +1 -1
  81. package/lib/typescript/commonjs/icons/zustand-icon.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/index.d.ts +2 -0
  83. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  84. package/lib/typescript/module/dial.d.ts +2 -2
  85. package/lib/typescript/module/dial.d.ts.map +1 -1
  86. package/lib/typescript/module/fonts.d.ts +20 -0
  87. package/lib/typescript/module/fonts.d.ts.map +1 -0
  88. package/lib/typescript/module/icons/ask-buoy-icon.d.ts +1 -1
  89. package/lib/typescript/module/icons/ask-buoy-icon.d.ts.map +1 -1
  90. package/lib/typescript/module/icons/assets-icon.d.ts +1 -1
  91. package/lib/typescript/module/icons/assets-icon.d.ts.map +1 -1
  92. package/lib/typescript/module/icons/benchmark-icon.d.ts +1 -1
  93. package/lib/typescript/module/icons/benchmark-icon.d.ts.map +1 -1
  94. package/lib/typescript/module/icons/camera-icon.d.ts +1 -1
  95. package/lib/typescript/module/icons/camera-icon.d.ts.map +1 -1
  96. package/lib/typescript/module/icons/console-icon.d.ts +1 -1
  97. package/lib/typescript/module/icons/console-icon.d.ts.map +1 -1
  98. package/lib/typescript/module/icons/env-icon.d.ts +1 -1
  99. package/lib/typescript/module/icons/env-icon.d.ts.map +1 -1
  100. package/lib/typescript/module/icons/events-icon.d.ts +1 -1
  101. package/lib/typescript/module/icons/events-icon.d.ts.map +1 -1
  102. package/lib/typescript/module/icons/generated/glyph-icons.g.d.ts +145 -0
  103. package/lib/typescript/module/icons/generated/glyph-icons.g.d.ts.map +1 -0
  104. package/lib/typescript/module/icons/generated/icon-data.g.d.ts.map +1 -1
  105. package/lib/typescript/module/icons/highlight-icon.d.ts +1 -1
  106. package/lib/typescript/module/icons/highlight-icon.d.ts.map +1 -1
  107. package/lib/typescript/module/icons/icon-primitives.d.ts +3 -1
  108. package/lib/typescript/module/icons/icon-primitives.d.ts.map +1 -1
  109. package/lib/typescript/module/icons/icon-primitives.native.d.ts +7 -0
  110. package/lib/typescript/module/icons/icon-primitives.native.d.ts.map +1 -1
  111. package/lib/typescript/module/icons/icon-renderer.d.ts +33 -3
  112. package/lib/typescript/module/icons/icon-renderer.d.ts.map +1 -1
  113. package/lib/typescript/module/icons/iconGlow.d.ts +27 -0
  114. package/lib/typescript/module/icons/iconGlow.d.ts.map +1 -0
  115. package/lib/typescript/module/icons/image-overlay-icon.d.ts +1 -1
  116. package/lib/typescript/module/icons/image-overlay-icon.d.ts.map +1 -1
  117. package/lib/typescript/module/icons/images-icon.d.ts +1 -1
  118. package/lib/typescript/module/icons/images-icon.d.ts.map +1 -1
  119. package/lib/typescript/module/icons/impersonate-icon.d.ts +1 -1
  120. package/lib/typescript/module/icons/impersonate-icon.d.ts.map +1 -1
  121. package/lib/typescript/module/icons/jotai-icon.d.ts +1 -1
  122. package/lib/typescript/module/icons/jotai-icon.d.ts.map +1 -1
  123. package/lib/typescript/module/icons/network-icon.d.ts +1 -1
  124. package/lib/typescript/module/icons/network-icon.d.ts.map +1 -1
  125. package/lib/typescript/module/icons/query-icon.d.ts +1 -1
  126. package/lib/typescript/module/icons/query-icon.d.ts.map +1 -1
  127. package/lib/typescript/module/icons/redux-icon.d.ts +1 -1
  128. package/lib/typescript/module/icons/redux-icon.d.ts.map +1 -1
  129. package/lib/typescript/module/icons/renders-icon.d.ts +2 -2
  130. package/lib/typescript/module/icons/renders-icon.d.ts.map +1 -1
  131. package/lib/typescript/module/icons/riverpod-icon.d.ts +1 -1
  132. package/lib/typescript/module/icons/riverpod-icon.d.ts.map +1 -1
  133. package/lib/typescript/module/icons/routes-icon.d.ts +21 -21
  134. package/lib/typescript/module/icons/routes-icon.d.ts.map +1 -1
  135. package/lib/typescript/module/icons/scenarios-icon.d.ts +1 -1
  136. package/lib/typescript/module/icons/scenarios-icon.d.ts.map +1 -1
  137. package/lib/typescript/module/icons/sentry-icon.d.ts +1 -1
  138. package/lib/typescript/module/icons/sentry-icon.d.ts.map +1 -1
  139. package/lib/typescript/module/icons/storage-icon.d.ts +1 -1
  140. package/lib/typescript/module/icons/storage-icon.d.ts.map +1 -1
  141. package/lib/typescript/module/icons/time-machine-icon.d.ts +1 -1
  142. package/lib/typescript/module/icons/time-machine-icon.d.ts.map +1 -1
  143. package/lib/typescript/module/icons/wifi-icon.d.ts +1 -1
  144. package/lib/typescript/module/icons/wifi-icon.d.ts.map +1 -1
  145. package/lib/typescript/module/icons/zustand-icon.d.ts +1 -1
  146. package/lib/typescript/module/icons/zustand-icon.d.ts.map +1 -1
  147. package/lib/typescript/module/index.d.ts +2 -0
  148. package/lib/typescript/module/index.d.ts.map +1 -1
  149. package/package.json +1 -1
@@ -9,6 +9,7 @@
9
9
 
10
10
  import { memo } from 'react';
11
11
  import { Text, View } from 'react-native';
12
+ import { ICON_GLOW } from "./iconGlow.js";
12
13
 
13
14
  // ===========================================
14
15
  // Types
@@ -20,15 +21,16 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
20
21
 
21
22
  export const IconContainer = ({
22
23
  size,
23
- children
24
+ children,
25
+ style
24
26
  }) => {
25
- const style = {
27
+ const box = {
26
28
  position: 'relative',
27
29
  width: size,
28
30
  height: size
29
31
  };
30
32
  return /*#__PURE__*/_jsx(View, {
31
- style: style,
33
+ style: [box, style],
32
34
  children: children
33
35
  });
34
36
  };
@@ -79,8 +81,8 @@ const IconCircleImpl = ({
79
81
  width: 0,
80
82
  height: 0
81
83
  },
82
- shadowOpacity: 0.9,
83
- shadowRadius: glowRadius * 0.8
84
+ shadowOpacity: ICON_GLOW.filledShadowOpacity,
85
+ shadowRadius: glowRadius * ICON_GLOW.filledRadiusScale
84
86
  })
85
87
  };
86
88
 
@@ -102,15 +104,15 @@ const IconCircleImpl = ({
102
104
  // Matches icon bg - enables shadow
103
105
  borderWidth: strokeW,
104
106
  borderColor: glowColor,
105
- opacity: 0.5,
107
+ opacity: ICON_GLOW.ringLayerOpacity,
106
108
  transform: transforms.length > 0 ? transforms : undefined,
107
109
  shadowColor: glowColor,
108
110
  shadowOffset: {
109
111
  width: 0,
110
112
  height: 0
111
113
  },
112
- shadowOpacity: 0.9,
113
- shadowRadius: 8
114
+ shadowOpacity: ICON_GLOW.ringShadowOpacity,
115
+ shadowRadius: ICON_GLOW.ringShadowRadius
114
116
  }
115
117
  }), /*#__PURE__*/_jsx(View, {
116
118
  style: style
@@ -198,8 +200,8 @@ const IconRectImpl = ({
198
200
  width: 0,
199
201
  height: 0
200
202
  },
201
- shadowOpacity: 0.9,
202
- shadowRadius: glowRadius * 0.8
203
+ shadowOpacity: ICON_GLOW.filledShadowOpacity,
204
+ shadowRadius: glowRadius * ICON_GLOW.filledRadiusScale
203
205
  })
204
206
  };
205
207
 
@@ -216,17 +218,17 @@ const IconRectImpl = ({
216
218
  width: width + glowExpand * 2,
217
219
  height: height + glowExpand * 2,
218
220
  borderRadius: borderRadius + glowExpand,
219
- borderWidth: strokeW * 2,
221
+ borderWidth: strokeW * ICON_GLOW.rectBorderScale,
220
222
  borderColor: glowColor,
221
- opacity: 0.4,
223
+ opacity: ICON_GLOW.rectLayerOpacity,
222
224
  transform: transforms.length > 0 ? transforms : undefined,
223
225
  shadowColor: glowColor,
224
226
  shadowOffset: {
225
227
  width: 0,
226
228
  height: 0
227
229
  },
228
- shadowOpacity: 0.8,
229
- shadowRadius: strokeW * 4
230
+ shadowOpacity: ICON_GLOW.rectShadowOpacity,
231
+ shadowRadius: strokeW * ICON_GLOW.rectShadowRadiusScale
230
232
  }
231
233
  }), /*#__PURE__*/_jsx(View, {
232
234
  style: style
@@ -409,14 +411,24 @@ const IconLineImpl = ({
409
411
  const segCenterX = (prev.x + pt.x) / 2;
410
412
  const segCenterY = (prev.y + pt.y) / 2;
411
413
 
412
- // A capsule: rounded ends butt against the neighbouring segment's, so
413
- // the joints read as a continuous stroke rather than a mitred polyline.
414
+ // A capsule per segment. Interior joints OVERLAP by half a stroke on each side (a
415
+ // capsule exactly segLength long shrinks to a blob when the segment is shorter than
416
+ // the stroke, and neighbouring round ends leave notches on the outside of a turn —
417
+ // the route-path icon rendered as dashes). The chain's two ends stay exactly at the
418
+ // authored endpoints so a curve is the same length as a straight line.
419
+ const extS = i > 1 ? strokeWidth / 2 : 0;
420
+ const extE = i < segments ? strokeWidth / 2 : 0;
421
+ const ux = segLength > 0 ? segDx / segLength : 0;
422
+ const uy = segLength > 0 ? segDy / segLength : 0;
423
+ const capLength = segLength + extS + extE;
424
+ const capCenterX = segCenterX + ux * (extE - extS) / 2;
425
+ const capCenterY = segCenterY + uy * (extE - extS) / 2;
414
426
  elements.push(/*#__PURE__*/_jsx(View, {
415
427
  style: {
416
428
  position: 'absolute',
417
- left: segCenterX - segLength / 2,
418
- top: segCenterY - strokeWidth / 2,
419
- width: segLength,
429
+ left: capCenterX - capLength / 2,
430
+ top: capCenterY - strokeWidth / 2,
431
+ width: capLength,
420
432
  height: strokeWidth,
421
433
  borderRadius: strokeWidth / 2,
422
434
  backgroundColor: stroke,
@@ -471,7 +483,7 @@ const IconLineImpl = ({
471
483
  width: length,
472
484
  height: strokeWidth,
473
485
  backgroundColor: glowColor,
474
- opacity: 0.5,
486
+ opacity: ICON_GLOW.lineLayerOpacity,
475
487
  transform: [{
476
488
  rotate: `${totalRotation}deg`
477
489
  }],
@@ -482,8 +494,8 @@ const IconLineImpl = ({
482
494
  width: 0,
483
495
  height: 0
484
496
  },
485
- shadowOpacity: 0.9,
486
- shadowRadius: 8
497
+ shadowOpacity: ICON_GLOW.lineShadowOpacity,
498
+ shadowRadius: ICON_GLOW.lineShadowRadius
487
499
  }
488
500
  }), /*#__PURE__*/_jsx(View, {
489
501
  style: style
@@ -626,13 +638,19 @@ const IconArcImpl = ({
626
638
  const x2 = cx + r * Math.cos(rad2);
627
639
  const y2 = cy + r * Math.sin(rad2);
628
640
 
629
- // Calculate segment geometry
641
+ // Calculate segment geometry. Interior joints overlap by half a stroke (same reason
642
+ // as the curved-line chain above); the arc's two ends stay at the authored angles.
630
643
  const dx = x2 - x1;
631
644
  const dy = y2 - y1;
632
- const length = Math.sqrt(dx * dx + dy * dy);
645
+ const segLen = Math.sqrt(dx * dx + dy * dy);
633
646
  const angle = Math.atan2(dy, dx) * (180 / Math.PI);
634
- const midX = (x1 + x2) / 2;
635
- const midY = (y1 + y2) / 2;
647
+ const extS = i > 0 ? strokeWidth / 2 : 0;
648
+ const extE = i < numSegments - 1 ? strokeWidth / 2 : 0;
649
+ const ux = segLen > 0 ? dx / segLen : 0;
650
+ const uy = segLen > 0 ? dy / segLen : 0;
651
+ const length = segLen + extS + extE;
652
+ const midX = (x1 + x2) / 2 + ux * (extE - extS) / 2;
653
+ const midY = (y1 + y2) / 2 + uy * (extE - extS) / 2;
636
654
  const style = {
637
655
  position: 'absolute',
638
656
  left: midX - length / 2,
@@ -743,8 +761,8 @@ const IconSemicircleImpl = ({
743
761
  width: 0,
744
762
  height: 0
745
763
  },
746
- shadowOpacity: 0.9,
747
- shadowRadius: glowRadius * 0.8
764
+ shadowOpacity: ICON_GLOW.filledShadowOpacity,
765
+ shadowRadius: glowRadius * ICON_GLOW.filledRadiusScale
748
766
  })
749
767
  };
750
768
 
@@ -769,16 +787,16 @@ const IconSemicircleImpl = ({
769
787
  borderTopRightRadius: half === 'top' || half === 'right' ? glowR : 0,
770
788
  borderBottomLeftRadius: half === 'bottom' || half === 'left' ? glowR : 0,
771
789
  borderBottomRightRadius: half === 'bottom' || half === 'right' ? glowR : 0,
772
- borderWidth: strokeW * 2,
790
+ borderWidth: strokeW * ICON_GLOW.rectBorderScale,
773
791
  borderColor: glowColor,
774
- opacity: 0.4,
792
+ opacity: ICON_GLOW.rectLayerOpacity,
775
793
  shadowColor: glowColor,
776
794
  shadowOffset: {
777
795
  width: 0,
778
796
  height: 0
779
797
  },
780
- shadowOpacity: 0.8,
781
- shadowRadius: strokeW * 4
798
+ shadowOpacity: ICON_GLOW.rectShadowOpacity,
799
+ shadowRadius: strokeW * ICON_GLOW.rectShadowRadiusScale
782
800
  }
783
801
  }), /*#__PURE__*/_jsx(View, {
784
802
  style: style
@@ -124,8 +124,19 @@ function resolveColor(fill, color, bgColor) {
124
124
  // Icon Renderer
125
125
  // ===========================================
126
126
 
127
- export function renderIconData(data, size, colorOverride, bgColorOverride) {
127
+ export function renderIconData(data, size, colorOverride, bgColorOverride,
128
+ /**
129
+ * REPLACES every authored stroke and border width (it does not scale them) —
130
+ * lucide's `strokeWidth` prop, for the uniform-weight GLYPH tier whose weight
131
+ * is caller-controlled. Applying it to a brand icon whose elements
132
+ * deliberately vary in weight would flatten it, so only the glyph components
133
+ * pass it. The Flutter twin is `BuoyIconPainter.strokeWidthOverride`.
134
+ */
135
+ strokeWidthOverride, /** Merged over the icon's box — the lucide components' `style` passthrough. */
136
+ style) {
128
137
  const scale = size / 24;
138
+ /** An authored width in icon units → pixels, honouring the override. */
139
+ const sw = authored => (strokeWidthOverride ?? authored) * scale;
129
140
  const center = size / 2;
130
141
  // Use colorOverride if provided, otherwise use the icon's default color
131
142
  const color = colorOverride ?? data.color;
@@ -134,6 +145,7 @@ export function renderIconData(data, size, colorOverride, bgColorOverride) {
134
145
  const elements = data.elements;
135
146
  return /*#__PURE__*/_jsx(IconContainer, {
136
147
  size: size,
148
+ style: style,
137
149
  children: elements.map((el, i) => {
138
150
  if (el.type === 'circle') {
139
151
  return /*#__PURE__*/_jsx(IconCircle, {
@@ -142,7 +154,7 @@ export function renderIconData(data, size, colorOverride, bgColorOverride) {
142
154
  r: el.r * scale,
143
155
  fill: resolveColor(el.fill, color, bgColor),
144
156
  borderColor: el.border ? resolveColor(el.borderColor, color, bgColor) ?? color : undefined,
145
- borderWidth: el.border ? (el.borderWidth ?? 2) * scale : 0,
157
+ borderWidth: el.border ? sw(el.borderWidth ?? 2) : 0,
146
158
  opacity: el.opacity,
147
159
  scaleX: el.scaleX,
148
160
  scaleY: el.scaleY,
@@ -163,7 +175,7 @@ export function renderIconData(data, size, colorOverride, bgColorOverride) {
163
175
  height: el.height * scale,
164
176
  fill: resolveColor(el.fill, color, bgColor),
165
177
  borderColor: el.border ? resolveColor(el.borderColor, color, bgColor) ?? color : undefined,
166
- borderWidth: el.border ? (el.borderWidth ?? 1) * scale : 0,
178
+ borderWidth: el.border ? sw(el.borderWidth ?? 1) : 0,
167
179
  borderRadius: (el.borderRadius ?? 0) * scale,
168
180
  opacity: el.opacity,
169
181
  glowColor: el.glow ? color : undefined,
@@ -180,7 +192,7 @@ export function renderIconData(data, size, colorOverride, bgColorOverride) {
180
192
  x2: center + el.x2 * scale,
181
193
  y2: center + el.y2 * scale,
182
194
  stroke: resolveColor(el.stroke ?? 'color', color, bgColor),
183
- strokeWidth: (el.strokeWidth ?? 1) * scale,
195
+ strokeWidth: sw(el.strokeWidth ?? 1),
184
196
  opacity: el.opacity,
185
197
  glowColor: el.glow ? color : undefined,
186
198
  glowRadius: el.glow ? (el.glowRadius ?? 4) * scale : 0,
@@ -210,7 +222,7 @@ export function renderIconData(data, size, colorOverride, bgColorOverride) {
210
222
  startAngle: el.startAngle,
211
223
  endAngle: el.endAngle,
212
224
  stroke: resolveColor(el.stroke ?? 'color', color, bgColor),
213
- strokeWidth: (el.strokeWidth ?? 1.5) * scale,
225
+ strokeWidth: sw(el.strokeWidth ?? 1.5),
214
226
  opacity: el.opacity,
215
227
  segments: el.segments
216
228
  }, i);
@@ -223,7 +235,7 @@ export function renderIconData(data, size, colorOverride, bgColorOverride) {
223
235
  half: el.half,
224
236
  fill: resolveColor(el.fill, color, bgColor),
225
237
  borderColor: el.border ? resolveColor(el.borderColor, color, bgColor) ?? color : undefined,
226
- borderWidth: el.border ? (el.borderWidth ?? 2) * scale : 0,
238
+ borderWidth: el.border ? sw(el.borderWidth ?? 2) : 0,
227
239
  opacity: el.opacity,
228
240
  glowColor: el.glow ? color : undefined,
229
241
  glowRadius: el.glow ? (el.glowRadius ?? 4) * scale : 0
@@ -249,7 +261,7 @@ export function renderIconData(data, size, colorOverride, bgColorOverride) {
249
261
  cy: center + el.cy * scale,
250
262
  r: el.r * scale,
251
263
  stroke: resolveColor(el.stroke ?? 'color', color, bgColor),
252
- strokeWidth: (el.strokeWidth ?? 2) * scale,
264
+ strokeWidth: sw(el.strokeWidth ?? 2),
253
265
  opacity: el.opacity,
254
266
  portion: el.portion ?? 'bottom'
255
267
  }, i);
@@ -263,7 +275,14 @@ export function renderIconData(data, size, colorOverride, bgColorOverride) {
263
275
  // Icon Factory
264
276
  // ===========================================
265
277
 
266
- export function createIcon(data) {
278
+ /**
279
+ * A Buoy icon component. Deliberately NOT `FC`: React's `FunctionComponent`
280
+ * type admits an async component (`Promise<ReactNode>`), so an `FC` is not
281
+ * assignable to the plain `(props) => ReactNode` slots callers declare for an
282
+ * icon — which is what the hand-drawn lucide components used to satisfy.
283
+ */
284
+
285
+ export function createIcon(data, opts) {
267
286
  // Memoised because every prop is a primitive and the body is expensive: an
268
287
  // icon rebuilds one element per shape in its data (dozens, for the detailed
269
288
  // ones) on every render. Without this, any parent re-render — a settings
@@ -272,9 +291,11 @@ export function createIcon(data) {
272
291
  const Icon = ({
273
292
  size = 24,
274
293
  color,
275
- bgColor
294
+ bgColor,
295
+ strokeWidth,
296
+ style
276
297
  }) => /*#__PURE__*/_jsx(_Fragment, {
277
- children: renderIconData(data, size, color, bgColor)
298
+ children: renderIconData(data, size, color, bgColor, opts?.glyph ? strokeWidth : undefined, style)
278
299
  });
279
300
  Icon.displayName = 'Icon';
280
301
  return /*#__PURE__*/memo(Icon);
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Icon glow — the numbers behind every `glow: true` element, in ONE table so the ports read
5
+ * them instead of re-typing them (`pnpm parity styles` → Swift/Dart constants).
6
+ *
7
+ * RN renders a glow as a CALayer shadow. A filled element casts its own shadow; a border-only
8
+ * ring or a line gets a separate "glow layer" View drawn underneath (RN shadows need a
9
+ * background colour), with its own opacity and a FIXED shadow radius in points.
10
+ */
11
+ export const ICON_GLOW = {
12
+ /** Filled circle / rect: `shadowOpacity` and `shadowRadius = glowRadius × this`. */
13
+ filledShadowOpacity: 0.9,
14
+ filledRadiusScale: 0.8,
15
+ /** Border-only circle: black-filled twin ring under the real one. */
16
+ ringLayerOpacity: 0.5,
17
+ ringShadowOpacity: 0.9,
18
+ ringShadowRadius: 8,
19
+ /** Line: same line in the glow colour under the real one. */
20
+ lineLayerOpacity: 0.5,
21
+ lineShadowOpacity: 0.9,
22
+ lineShadowRadius: 8,
23
+ /** Border-only rect: twin expanded by the stroke width, border `strokeW × borderScale`. */
24
+ rectLayerOpacity: 0.4,
25
+ rectShadowOpacity: 0.8,
26
+ rectBorderScale: 2,
27
+ rectShadowRadiusScale: 4
28
+ };
@@ -22,6 +22,15 @@
22
22
  // Core store
23
23
  export { FloatingToolsStore } from "./FloatingToolsStore.js";
24
24
 
25
+ // The monospace family, per platform — never write `fontFamily: "monospace"`.
26
+ export { monoFont } from "./fonts.js";
27
+
28
+ // The lucide UI glyph tier as components, one per shared/icons/glyphs/*.json.
29
+ // Named `<Name>Glyph` because a few names collide with the BRAND tier (`wifi`
30
+ // is both, and they are different drawings); shared-ui aliases them onto the
31
+ // plain lucide names.
32
+ export * from "./icons/generated/glyph-icons.g.js";
33
+
25
34
  // Constants
26
35
  export { VISIBLE_HANDLE_WIDTH, DRAG_THRESHOLD, ANIMATION_DURATION, EDGE_PADDING, SAVE_DEBOUNCE_MS, STORAGE_KEYS } from "./constants.js";
27
36
 
@@ -105,7 +105,7 @@ export declare const dialStyles: {
105
105
  readonly fontSize: 10;
106
106
  readonly fontWeight: "900";
107
107
  readonly letterSpacing: 1;
108
- readonly fontFamily: "monospace";
108
+ readonly fontFamily: string;
109
109
  };
110
110
  readonly proText: {
111
111
  readonly fontSize: 8;
@@ -125,7 +125,7 @@ export declare const dialStyles: {
125
125
  readonly fontSize: 8;
126
126
  readonly fontWeight: "900";
127
127
  readonly letterSpacing: 0.3;
128
- readonly fontFamily: "monospace";
128
+ readonly fontFamily: string;
129
129
  readonly marginTop: 2;
130
130
  };
131
131
  /** Icon wrapper margin bottom */
@@ -1 +1 @@
1
- {"version":3,"file":"dial.d.ts","sourceRoot":"","sources":["../../../src/dial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dial.d.ts","sourceRoot":"","sources":["../../../src/dial.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The monospace family, per platform — THE seam for every `fontFamily` in Buoy.
3
+ *
4
+ * `"monospace"` is an ANDROID family name. iOS has no family called that, so
5
+ * React Native silently falls back to the system font: every code path, header
6
+ * name, JSON value and status chip Buoy renders "in monospace" was actually
7
+ * proportional on iOS. The cross-framework parity sheet is what surfaced it —
8
+ * Flutter resolves `monospace` to a real monospaced face, so its chips came out
9
+ * wider and taller than their RN twins and looked like a port bug.
10
+ *
11
+ * Menlo ships with every iOS version and is the family the ports can name too
12
+ * (Flutter `buoyMonoFont`, SwiftUI `Font.custom("Menlo", …)`), which is what
13
+ * makes the three frameworks draw the same glyphs.
14
+ *
15
+ * On web (the desktop dashboard, react-native-web) the generic `monospace`
16
+ * resolves to a thin, poorly-hinted browser default, so a curated stack is used
17
+ * there instead — the choice `packages/console` had already made locally.
18
+ */
19
+ export declare const monoFont: string;
20
+ //# sourceMappingURL=fonts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../../src/fonts.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,QAAQ,EAAE,MAMJ,CAAC"}
@@ -11,5 +11,5 @@
11
11
  */
12
12
  import { ASK_BUOY_ICON_COLOR } from './generated/icon-data.g';
13
13
  export { ASK_BUOY_ICON_COLOR };
14
- export declare const AskBuoyIcon: import("react").FC<import("./icon-renderer").IconProps>;
14
+ export declare const AskBuoyIcon: import("./icon-renderer").BuoyIconComponent;
15
15
  //# sourceMappingURL=ask-buoy-icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ask-buoy-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/ask-buoy-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAmB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAC/B,eAAO,MAAM,WAAW,yDAA8B,CAAC"}
1
+ {"version":3,"file":"ask-buoy-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/ask-buoy-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAmB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAC/B,eAAO,MAAM,WAAW,6CAA8B,CAAC"}
@@ -10,5 +10,5 @@
10
10
  */
11
11
  import { ASSETS_ICON_COLOR } from './generated/icon-data.g';
12
12
  export { ASSETS_ICON_COLOR };
13
- export declare const AssetsIcon: import("react").FC<import("./icon-renderer").IconProps>;
13
+ export declare const AssetsIcon: import("./icon-renderer").BuoyIconComponent;
14
14
  //# sourceMappingURL=assets-icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/assets-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,eAAO,MAAM,UAAU,yDAA6B,CAAC"}
1
+ {"version":3,"file":"assets-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/assets-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,eAAO,MAAM,UAAU,6CAA6B,CAAC"}
@@ -8,5 +8,5 @@
8
8
  */
9
9
  import { BENCHMARK_ICON_COLOR } from './generated/icon-data.g';
10
10
  export { BENCHMARK_ICON_COLOR };
11
- export declare const BenchmarkIcon: import("react").FC<import("./icon-renderer").IconProps>;
11
+ export declare const BenchmarkIcon: import("./icon-renderer").BuoyIconComponent;
12
12
  //# sourceMappingURL=benchmark-icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/benchmark-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAqB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,eAAO,MAAM,aAAa,yDAAgC,CAAC"}
1
+ {"version":3,"file":"benchmark-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/benchmark-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAqB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,eAAO,MAAM,aAAa,6CAAgC,CAAC"}
@@ -11,5 +11,5 @@
11
11
  */
12
12
  import { CAMERA_ICON_COLOR } from './generated/icon-data.g';
13
13
  export { CAMERA_ICON_COLOR };
14
- export declare const CameraIcon: import("react").FC<import("./icon-renderer").IconProps>;
14
+ export declare const CameraIcon: import("./icon-renderer").BuoyIconComponent;
15
15
  //# sourceMappingURL=camera-icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"camera-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/camera-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,eAAO,MAAM,UAAU,yDAA6B,CAAC"}
1
+ {"version":3,"file":"camera-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/camera-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,eAAO,MAAM,UAAU,6CAA6B,CAAC"}
@@ -10,5 +10,5 @@
10
10
  */
11
11
  import { CONSOLE_ICON_COLOR } from './generated/icon-data.g';
12
12
  export { CONSOLE_ICON_COLOR };
13
- export declare const ConsoleIcon: import("react").FC<import("./icon-renderer").IconProps>;
13
+ export declare const ConsoleIcon: import("./icon-renderer").BuoyIconComponent;
14
14
  //# sourceMappingURL=console-icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"console-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/console-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAmB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,eAAO,MAAM,WAAW,yDAA8B,CAAC"}
1
+ {"version":3,"file":"console-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/console-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAmB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,eAAO,MAAM,WAAW,6CAA8B,CAAC"}
@@ -8,5 +8,5 @@
8
8
  */
9
9
  import { ENV_ICON_COLOR } from './generated/icon-data.g';
10
10
  export { ENV_ICON_COLOR };
11
- export declare const EnvIcon: import("react").FC<import("./icon-renderer").IconProps>;
11
+ export declare const EnvIcon: import("./icon-renderer").BuoyIconComponent;
12
12
  //# sourceMappingURL=env-icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/env-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAe,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MAAM,OAAO,yDAA0B,CAAC"}
1
+ {"version":3,"file":"env-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/env-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAe,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MAAM,OAAO,6CAA0B,CAAC"}
@@ -8,5 +8,5 @@
8
8
  */
9
9
  import { EVENTS_ICON_COLOR } from './generated/icon-data.g';
10
10
  export { EVENTS_ICON_COLOR };
11
- export declare const EventsIcon: import("react").FC<import("./icon-renderer").IconProps>;
11
+ export declare const EventsIcon: import("./icon-renderer").BuoyIconComponent;
12
12
  //# sourceMappingURL=events-icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/events-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,eAAO,MAAM,UAAU,yDAA6B,CAAC"}
1
+ {"version":3,"file":"events-icon.d.ts","sourceRoot":"","sources":["../../../../src/icons/events-icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,eAAO,MAAM,UAAU,6CAA6B,CAAC"}