@djangocfg/ui-tools 2.1.463 → 2.1.464

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djangocfg/ui-tools",
3
- "version": "2.1.463",
3
+ "version": "2.1.464",
4
4
  "description": "Heavy React tools with lazy loading - for Electron, Vite, CRA, Next.js apps",
5
5
  "keywords": [
6
6
  "ui-tools",
@@ -334,8 +334,8 @@
334
334
  "test:watch": "vitest"
335
335
  },
336
336
  "peerDependencies": {
337
- "@djangocfg/i18n": "^2.1.463",
338
- "@djangocfg/ui-core": "^2.1.463",
337
+ "@djangocfg/i18n": "^2.1.464",
338
+ "@djangocfg/ui-core": "^2.1.464",
339
339
  "consola": "^3.4.2",
340
340
  "lodash-es": "^4.18.1",
341
341
  "lucide-react": "^0.545.0",
@@ -418,9 +418,9 @@
418
418
  "@maplibre/maplibre-gl-geocoder": "^1.7.0"
419
419
  },
420
420
  "devDependencies": {
421
- "@djangocfg/i18n": "^2.1.463",
422
- "@djangocfg/typescript-config": "^2.1.463",
423
- "@djangocfg/ui-core": "^2.1.463",
421
+ "@djangocfg/i18n": "^2.1.464",
422
+ "@djangocfg/typescript-config": "^2.1.464",
423
+ "@djangocfg/ui-core": "^2.1.464",
424
424
  "@types/lodash-es": "^4.17.12",
425
425
  "@types/mapbox__mapbox-gl-draw": "^1.4.8",
426
426
  "@types/node": "^25.2.3",
@@ -254,6 +254,7 @@ export const Composer = forwardRef<HTMLDivElement, ComposerProps>(function Compo
254
254
  }, [hasCustomTextarea, composerFocus, composerSetValue, textareaRef]);
255
255
 
256
256
  const inlineStart = composerSlots?.inlineStart;
257
+ const afterAttach = composerSlots?.afterAttach;
257
258
  const inlineEnd = composerSlots?.inlineEnd;
258
259
  const blockStart = composerSlots?.blockStart;
259
260
 
@@ -515,6 +516,7 @@ export const Composer = forwardRef<HTMLDivElement, ComposerProps>(function Compo
515
516
  size={size}
516
517
  layout={layout}
517
518
  inlineStart={inlineStart}
519
+ afterAttach={afterAttach}
518
520
  inlineEnd={inlineEnd}
519
521
  />
520
522
  ) : (
@@ -524,6 +526,7 @@ export const Composer = forwardRef<HTMLDivElement, ComposerProps>(function Compo
524
526
  size={size}
525
527
  layout={layout}
526
528
  inlineStart={inlineStart}
529
+ afterAttach={afterAttach}
527
530
  inlineEnd={inlineEnd}
528
531
  className={slotProps?.actionBar?.className}
529
532
  />
@@ -704,6 +707,7 @@ export const Composer = forwardRef<HTMLDivElement, ComposerProps>(function Compo
704
707
  size={size}
705
708
  layout={layout}
706
709
  inlineStart={inlineStart}
710
+ afterAttach={afterAttach}
707
711
  cluster="start"
708
712
  />
709
713
  )}
@@ -778,6 +782,7 @@ export const Composer = forwardRef<HTMLDivElement, ComposerProps>(function Compo
778
782
  {actionsStart.map((action) => (
779
783
  <ComposerButton key={action.id} action={action} size={size} />
780
784
  ))}
785
+ {afterAttach}
781
786
  </div>
782
787
  <div className={cn('flex items-center', GAP[size])}>
783
788
  {inlineEnd}
@@ -24,6 +24,7 @@ export function ComposerActionBar({
24
24
  actionsEnd,
25
25
  size,
26
26
  inlineStart,
27
+ afterAttach,
27
28
  inlineEnd,
28
29
  className,
29
30
  cluster,
@@ -37,6 +38,8 @@ export function ComposerActionBar({
37
38
  {actionsStart.map((action) => (
38
39
  <ComposerButton key={action.id} action={action} size={size} />
39
40
  ))}
41
+ {/* Right after the attach cluster — an engine·model picker pill, etc. */}
42
+ {afterAttach}
40
43
  </div>
41
44
  );
42
45
  const endCluster = (
@@ -67,6 +67,14 @@ export interface ComposerSlots {
67
67
  blockStart?: ReactNode;
68
68
  /** Raw nodes placed left of the textarea in the `inline` layout. */
69
69
  inlineStart?: ReactNode;
70
+ /**
71
+ * Raw node placed in the START cluster RIGHT AFTER the built-in attach
72
+ * (paperclip) button, before any host `actionsStart` — for a composer tool
73
+ * that reads as "part of the attach cluster" (e.g. an engine·model picker
74
+ * pill) rather than living at the far edges. Distinct from `inlineStart`,
75
+ * which renders BEFORE the paperclip.
76
+ */
77
+ afterAttach?: ReactNode;
70
78
  /** Raw nodes placed right of the textarea in the `inline` layout. */
71
79
  inlineEnd?: ReactNode;
72
80
  /**
@@ -110,6 +118,8 @@ export interface ActionBarProps {
110
118
  size: ComposerSize;
111
119
  layout: ComposerLayout;
112
120
  inlineStart?: ReactNode;
121
+ /** Raw node rendered right after the attach button in the start cluster. */
122
+ afterAttach?: ReactNode;
113
123
  inlineEnd?: ReactNode;
114
124
  }
115
125