Note 17 - Segment Information (Tables)
   | 
6 Months Ended | 
Jun. 30, 2025  | 
| Notes Tables | 
 
 | 
| Schedule of Segment Reporting Information, by Segment [Table Text Block] | 
    
|      | 
  | 
  Six months ended   | 
  | 
  | 
  Three months ended   | 
  | 
 
|      | 
  | 
  June 30,   | 
  | 
  | 
  June 30,   | 
  | 
 
|      | 
  | 
  2025   | 
  | 
  | 
  2024   | 
  | 
  | 
  2025   | 
  | 
  | 
  2024   | 
  | 
 
|   Net Sales:   | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
 
|   Distribution   | 
  | 
$ | 
285,172 | 
  | 
  | 
$ | 
174,663 | 
  | 
  | 
$ | 
153,010 | 
  | 
  | 
$ | 
87,842 | 
  | 
 
|   Solutions   | 
  | 
  | 
12,156 | 
  | 
  | 
  | 
9,835 | 
  | 
  | 
  | 
6,274 | 
  | 
  | 
  | 
4,234 | 
  | 
 
|      | 
  | 
  | 
297,328 | 
  | 
  | 
  | 
184,498 | 
  | 
  | 
  | 
159,284 | 
  | 
  | 
  | 
92,076 | 
  | 
 
|   Cost of Sales:   | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
 
|   Distribution   | 
  | 
$ | 
241,725 | 
  | 
  | 
$ | 
144,765 | 
  | 
  | 
$ | 
129,962 | 
  | 
  | 
$ | 
72,159 | 
  | 
 
|   Solutions   | 
  | 
  | 
5,899 | 
  | 
  | 
  | 
4,156 | 
  | 
  | 
  | 
3,014 | 
  | 
  | 
  | 
1,359 | 
  | 
 
|      | 
  | 
  | 
247,624 | 
  | 
  | 
  | 
148,921 | 
  | 
  | 
  | 
132,976 | 
  | 
  | 
  | 
73,518 | 
  | 
 
|   Direct Costs:   | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
 
|   Distribution   | 
  | 
$ | 
20,119 | 
  | 
  | 
$ | 
14,912 | 
  | 
  | 
$ | 
10,106 | 
  | 
  | 
$ | 
7,535 | 
  | 
 
|   Solutions   | 
  | 
  | 
3,102 | 
  | 
  | 
  | 
2,683 | 
  | 
  | 
  | 
1,613 | 
  | 
  | 
  | 
1,302 | 
  | 
 
|      | 
  | 
  | 
23,221 | 
  | 
  | 
  | 
17,595 | 
  | 
  | 
  | 
11,719 | 
  | 
  | 
  | 
8,837 | 
  | 
 
|   Segment Income: (1)   | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
 
|   Distribution   | 
  | 
$ | 
23,328 | 
  | 
  | 
$ | 
14,986 | 
  | 
  | 
$ | 
12,942 | 
  | 
  | 
$ | 
8,148 | 
  | 
 
|   Solutions   | 
  | 
  | 
3,155 | 
  | 
  | 
  | 
2,996 | 
  | 
  | 
  | 
1,647 | 
  | 
  | 
  | 
1,573 | 
  | 
 
|   Segment Income   | 
  | 
  | 
26,483 | 
  | 
  | 
  | 
17,982 | 
  | 
  | 
  | 
14,589 | 
  | 
  | 
  | 
9,721 | 
  | 
 
|      | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
 
|   General and administrative   | 
  | 
$ | 
9,891 | 
  | 
  | 
$ | 
7,901 | 
  | 
  | 
$ | 
4,638 | 
  | 
  | 
$ | 
4,137 | 
  | 
 
|   Acquisition related costs   | 
  | 
  | 
139 | 
  | 
  | 
  | 
592 | 
  | 
  | 
  | 
13 | 
  | 
  | 
  | 
469 | 
  | 
 
|   Depreciation and amortization expense   | 
  | 
  | 
3,720 | 
  | 
  | 
  | 
1,736 | 
  | 
  | 
  | 
1,982 | 
  | 
  | 
  | 
865 | 
  | 
 
|   Interest, net   | 
  | 
  | 
337 | 
  | 
  | 
  | 
557 | 
  | 
  | 
  | 
151 | 
  | 
  | 
  | 
354 | 
  | 
 
|   Foreign currency transaction (loss) gain   | 
  | 
  | 
(567 | 
) | 
  | 
  | 
(246 | 
) | 
  | 
  | 
14 | 
  | 
  | 
  | 
(162 | 
) | 
 
|   Change in fair value of acquisition contingent consideration   | 
  | 
  | 
(515 | 
) | 
  | 
  | 
— | 
  | 
  | 
  | 
(379 | 
) | 
  | 
  | 
— | 
  | 
 
|   Income before taxes   | 
  | 
$ | 
11,988 | 
  | 
  | 
$ | 
8,064 | 
  | 
  | 
$ | 
7,742 | 
  | 
  | 
$ | 
4,442 | 
  | 
 
 
    
|      | 
  | 
  As of   | 
  | 
  | 
  As of   | 
  | 
 
|      | 
  | 
  June 30,   | 
  | 
  | 
  December 31,   | 
  | 
 
|   Selected Assets by Segment:   | 
  | 
  2025   | 
  | 
  | 
  2024   | 
  | 
 
|      | 
  | 
     | 
  | 
  | 
     | 
  | 
 
|   Distribution   | 
  | 
$ | 
343,280 | 
  | 
  | 
$ | 
394,809 | 
  | 
 
|   Solutions   | 
  | 
  | 
23,349 | 
  | 
  | 
  | 
21,882 | 
  | 
 
|   Segment Select Assets   | 
  | 
  | 
366,629 | 
  | 
  | 
  | 
416,691 | 
  | 
 
|   Corporate Assets   | 
  | 
  | 
54,062 | 
  | 
  | 
  | 
52,488 | 
  | 
 
|   Total Assets   | 
  | 
$ | 
420,691 | 
  | 
  | 
$ | 
469,179 | 
  | 
 
 
   
 | 
| Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas [Table Text Block] | 
    
|   | 
  | 
  Six months ended   | 
  | 
  | 
  Three months ended   | 
  | 
 
|   | 
  | 
  June 30, 2025   | 
  | 
  | 
  June 30, 2025   | 
  | 
 
|      | 
  | 
  Distribution   | 
  | 
  | 
  Solutions   | 
  | 
  | 
  Total   | 
  | 
  | 
  Distribution   | 
  | 
  | 
  Solutions   | 
  | 
  | 
  Total   | 
  | 
 
|   Geography   | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
     | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
     | 
  | 
 
|   USA   | 
  | 
$ | 
219,450 | 
  | 
  | 
$ | 
4,180 | 
  | 
  | 
$ | 
223,630 | 
  | 
  | 
$ | 
114,362 | 
  | 
  | 
$ | 
2,226 | 
  | 
  | 
$ | 
116,588 | 
  | 
 
|   Europe and United Kingdom   | 
  | 
  | 
50,406 | 
  | 
  | 
  | 
7,596 | 
  | 
  | 
  | 
58,002 | 
  | 
  | 
  | 
31,813 | 
  | 
  | 
  | 
3,816 | 
  | 
  | 
  | 
35,629 | 
  | 
 
|   Canada   | 
  | 
  | 
15,316 | 
  | 
  | 
  | 
380 | 
  | 
  | 
  | 
15,696 | 
  | 
  | 
  | 
6,835 | 
  | 
  | 
  | 
232 | 
  | 
  | 
  | 
7,067 | 
  | 
 
|   Total net sales   | 
  | 
$ | 
285,172 | 
  | 
  | 
$ | 
12,156 | 
  | 
  | 
$ | 
297,328 | 
  | 
  | 
$ | 
153,010 | 
  | 
  | 
$ | 
6,274 | 
  | 
  | 
$ | 
159,284 | 
  | 
 
|      | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
 
|   Timing of Revenue Recognition   | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
     | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
     | 
  | 
 
|   Transferred at a point in time where the Company is principal (1)   | 
  | 
$ | 
259,164 | 
  | 
  | 
$ | 
8,765 | 
  | 
  | 
$ | 
267,929 | 
  | 
  | 
$ | 
140,176 | 
  | 
  | 
$ | 
4,466 | 
  | 
  | 
$ | 
144,642 | 
  | 
 
|   Transferred at a point in time where the Company is agent (2)   | 
  | 
  | 
26,008 | 
  | 
  | 
  | 
3,391 | 
  | 
  | 
  | 
29,399 | 
  | 
  | 
  | 
12,834 | 
  | 
  | 
  | 
1,808 | 
  | 
  | 
  | 
14,642 | 
  | 
 
|   Total net sales   | 
  | 
$ | 
285,172 | 
  | 
  | 
$ | 
12,156 | 
  | 
  | 
$ | 
297,328 | 
  | 
  | 
$ | 
153,010 | 
  | 
  | 
$ | 
6,274 | 
  | 
  | 
$ | 
159,284 | 
  | 
 
 
    
|   | 
  | 
  Six months ended   | 
  | 
  | 
  Three months ended   | 
  | 
 
|   | 
  | 
  June 30, 2024   | 
  | 
  | 
  June 30, 2024   | 
  | 
 
|      | 
  | 
  Distribution   | 
  | 
  | 
  Solutions   | 
  | 
  | 
  Total   | 
  | 
  | 
  Distribution   | 
  | 
  | 
  Solutions   | 
  | 
  | 
  Total   | 
  | 
 
|   Geography   | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
     | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
     | 
  | 
 
|   USA   | 
  | 
$ | 
130,450 | 
  | 
  | 
$ | 
2,989 | 
  | 
  | 
$ | 
133,439 | 
  | 
  | 
$ | 
68,087 | 
  | 
  | 
$ | 
1,081 | 
  | 
  | 
$ | 
69,168 | 
  | 
 
|   Europe and United Kingdom   | 
  | 
  | 
32,642 | 
  | 
  | 
  | 
6,284 | 
  | 
  | 
  | 
38,926 | 
  | 
  | 
  | 
14,357 | 
  | 
  | 
  | 
2,877 | 
  | 
  | 
  | 
17,234 | 
  | 
 
|   Canada   | 
  | 
  | 
11,571 | 
  | 
  | 
  | 
562 | 
  | 
  | 
  | 
12,133 | 
  | 
  | 
  | 
5,398 | 
  | 
  | 
  | 
276 | 
  | 
  | 
  | 
5,674 | 
  | 
 
|   Total net sales   | 
  | 
$ | 
174,663 | 
  | 
  | 
$ | 
9,835 | 
  | 
  | 
$ | 
184,498 | 
  | 
  | 
$ | 
87,842 | 
  | 
  | 
$ | 
4,234 | 
  | 
  | 
$ | 
92,076 | 
  | 
 
|      | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
  | 
     | 
  | 
 
|   Timing of Revenue Recognition   | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
     | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
     | 
  | 
 
|   Transferred at a point in time where the Company is principal (1)   | 
  | 
$ | 
151,467 | 
  | 
  | 
$ | 
5,894 | 
  | 
  | 
$ | 
157,361 | 
  | 
  | 
$ | 
75,735 | 
  | 
  | 
$ | 
2,336 | 
  | 
  | 
$ | 
78,071 | 
  | 
 
|   Transferred at a point in time where the Company is agent (2)   | 
  | 
  | 
23,196 | 
  | 
  | 
  | 
3,941 | 
  | 
  | 
  | 
27,137 | 
  | 
  | 
  | 
12,107 | 
  | 
  | 
  | 
1,898 | 
  | 
  | 
  | 
14,005 | 
  | 
 
|   Total net sales   | 
  | 
$ | 
174,663 | 
  | 
  | 
$ | 
9,835 | 
  | 
  | 
$ | 
184,498 | 
  | 
  | 
$ | 
87,842 | 
  | 
  | 
$ | 
4,234 | 
  | 
  | 
$ | 
92,076 | 
  | 
 
 
   
 | 
| Long-Lived Assets by Geographic Areas [Table Text Block] | 
    
|      | 
  | 
  June 30,   | 
  | 
  | 
  December 31,   | 
  | 
 
|   Identifiable Assets by Geographic Areas   | 
  | 
  2025   | 
  | 
  | 
  2024   | 
  | 
 
|   USA   | 
  | 
$ | 
242,719 | 
  | 
  | 
$ | 
278,957 | 
  | 
 
|   Canada   | 
  | 
  | 
29,308 | 
  | 
  | 
  | 
34,352 | 
  | 
 
|   Europe and United Kingdom   | 
  | 
  | 
148,664 | 
  | 
  | 
  | 
155,870 | 
  | 
 
|   Total   | 
  | 
$ | 
420,691 | 
  | 
  | 
$ | 
469,179 | 
  | 
 
 
   
 |