@nar-bus/ui-kit 1.10.0 → 1.12.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 (40) hide show
  1. package/dist/atoms/Select.d.ts.map +1 -1
  2. package/dist/hooks/useAnchoredPanel.d.ts +14 -0
  3. package/dist/hooks/useAnchoredPanel.d.ts.map +1 -0
  4. package/dist/hooks/useSelectListbox.d.ts +11 -4
  5. package/dist/hooks/useSelectListbox.d.ts.map +1 -1
  6. package/dist/i18n/en.json.d.ts +5 -0
  7. package/dist/i18n/resources.d.ts +10 -0
  8. package/dist/i18n/resources.d.ts.map +1 -1
  9. package/dist/i18n/resources.js +1 -1
  10. package/dist/i18n/tr.json.d.ts +5 -0
  11. package/dist/index.d.ts +4 -4
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +3086 -2423
  14. package/dist/molecules/Combobox.d.ts.map +1 -1
  15. package/dist/molecules/DatePicker.d.ts.map +1 -1
  16. package/dist/molecules/IconCell.d.ts +28 -0
  17. package/dist/molecules/IconCell.d.ts.map +1 -0
  18. package/dist/molecules/KpiCard.d.ts.map +1 -1
  19. package/dist/molecules/MetricTile.d.ts.map +1 -1
  20. package/dist/molecules/TextCell.d.ts +3 -1
  21. package/dist/molecules/TextCell.d.ts.map +1 -1
  22. package/dist/molecules/index.d.ts +1 -0
  23. package/dist/molecules/index.d.ts.map +1 -1
  24. package/dist/organisms/EditableGrid/EditableGrid.d.ts +111 -0
  25. package/dist/organisms/EditableGrid/EditableGrid.d.ts.map +1 -0
  26. package/dist/organisms/EditableGrid/EditableGridCell.d.ts +28 -0
  27. package/dist/organisms/EditableGrid/EditableGridCell.d.ts.map +1 -0
  28. package/dist/organisms/EditableGrid/index.d.ts +4 -0
  29. package/dist/organisms/EditableGrid/index.d.ts.map +1 -0
  30. package/dist/organisms/EditableGrid/useEditableGridKeyboardNav.d.ts +38 -0
  31. package/dist/organisms/EditableGrid/useEditableGridKeyboardNav.d.ts.map +1 -0
  32. package/dist/organisms/FilterPanel.d.ts +11 -1
  33. package/dist/organisms/FilterPanel.d.ts.map +1 -1
  34. package/dist/organisms/index.d.ts +1 -0
  35. package/dist/organisms/index.d.ts.map +1 -1
  36. package/dist/resources-ksT-xLKO.js +50 -0
  37. package/dist/utils/anchoredPanelPosition.d.ts +29 -0
  38. package/dist/utils/anchoredPanelPosition.d.ts.map +1 -0
  39. package/package.json +1 -1
  40. package/dist/resources-DnPSGheR.js +0 -48
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/molecules/Combobox.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;CAAE;AAEjE,UAAU,iBAAiB;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IACtD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC7E;AACD,UAAU,mBAAoB,SAAQ,iBAAiB;IAAG,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAAE;AACjI,UAAU,qBAAsB,SAAQ,iBAAiB;IAAG,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAAE;AACrI,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAwMxE,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAgB,EAAE,iBAAiB,EAAE,QAAgB,EAC/E,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAiB,GACjE,EAAE,aAAa,+BAkJf"}
1
+ {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/molecules/Combobox.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;CAAE;AAEjE,UAAU,iBAAiB;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IACtD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC7E;AACD,UAAU,mBAAoB,SAAQ,iBAAiB;IAAG,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAAE;AACjI,UAAU,qBAAsB,SAAQ,iBAAiB;IAAG,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAAE;AACrI,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAwMxE,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAgB,EAAE,iBAAiB,EAAE,QAAgB,EAC/E,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAiB,GACjE,EAAE,aAAa,+BAyJf"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/molecules/DatePicker.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,GAAG,EACH,GAAG,EACH,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE,eAAe,+BAgKjB"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/molecules/DatePicker.tsx"],"names":[],"mappings":"AAqBA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,GAAG,EACH,GAAG,EACH,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE,eAAe,+BA0RjB"}
@@ -0,0 +1,28 @@
1
+ import { ReactNode } from 'react';
2
+ export interface IconCellProps {
3
+ /** Leading visual — a lucide icon, a color-dot `<span>`, a small badge, etc. */
4
+ icon: ReactNode;
5
+ /** Primary content (usually the entity name/label). */
6
+ label: ReactNode;
7
+ /** Optional secondary line under the label (code / id / type), muted + `--font-xs`. */
8
+ secondary?: ReactNode;
9
+ /**
10
+ * Optional caller-supplied CSS color applied to the icon wrapper, so
11
+ * `currentColor`-based icons (lucide) pick it up — the data-driven tint case
12
+ * (e.g. a tag's own color). Mirrors the `DetailSection.accentColor` pattern.
13
+ */
14
+ iconColor?: string;
15
+ /** Truncate the label (adds a title tooltip when `label` is a string). */
16
+ truncate?: boolean;
17
+ className?: string;
18
+ }
19
+ /**
20
+ * Icon + label (+ optional secondary line) cell for table columns — the
21
+ * sibling of `TextCell`/`BadgeCell`/`AvatarCell`. Generalizes the hand-rolled
22
+ * "leading-icon entity cell" (a colored icon + name, or a color-dot swatch +
23
+ * label) so consumers drop their local versions. Pure-presentation: the icon,
24
+ * label and secondary are all caller-supplied nodes; `iconColor` is a caller
25
+ * CSS color.
26
+ */
27
+ export declare const IconCell: import('react').ForwardRefExoticComponent<IconCellProps & import('react').RefAttributes<HTMLDivElement>>;
28
+ //# sourceMappingURL=IconCell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconCell.d.ts","sourceRoot":"","sources":["../../src/molecules/IconCell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGnD,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,IAAI,EAAE,SAAS,CAAC;IAChB,uDAAuD;IACvD,KAAK,EAAE,SAAS,CAAC;IACjB,uFAAuF;IACvF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,0GAoCpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"KpiCard.d.ts","sourceRoot":"","sources":["../../src/molecules/KpiCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAA+C,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAsC5F,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,wGAAwG;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;KAAE,CAAC;IACpD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mIAAmI;IACnI,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2IAA2I;IAC3I,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8IAA8I;IAC9I,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAqCD,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,EAAE,aAAa,EACnB,WAAW,EACX,IAAgB,EAChB,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,OAAO,EACP,YAAY,GACb,EAAE,YAAY,+BA2Hd"}
1
+ {"version":3,"file":"KpiCard.d.ts","sourceRoot":"","sources":["../../src/molecules/KpiCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAA+C,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAsC5F,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,wGAAwG;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;KAAE,CAAC;IACpD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mIAAmI;IACnI,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2IAA2I;IAC3I,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8IAA8I;IAC9I,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAqCD,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,EAAE,aAAa,EACnB,WAAW,EACX,IAAgB,EAChB,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,OAAO,EACP,YAAY,GACb,EAAE,YAAY,+BA6Hd"}
@@ -1 +1 @@
1
- {"version":3,"file":"MetricTile.d.ts","sourceRoot":"","sources":["../../src/molecules/MetricTile.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK5F,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAChE,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE1E,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACpF,8DAA8D;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mFAAmF;IACnF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,oDAAoD;IACpD,KAAK,EAAE,SAAS,CAAC;IACjB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2HAA2H;IAC3H,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,oIAAoI;IACpI,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,uFAAuF;IACvF,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,gHAAgH;IAChH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAwDD,eAAO,MAAM,UAAU,4GAsHtB,CAAC"}
1
+ {"version":3,"file":"MetricTile.d.ts","sourceRoot":"","sources":["../../src/molecules/MetricTile.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK5F,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAChE,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE1E,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACpF,8DAA8D;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mFAAmF;IACnF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,oDAAoD;IACpD,KAAK,EAAE,SAAS,CAAC;IACjB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2HAA2H;IAC3H,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,oIAAoI;IACpI,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,uFAAuF;IACvF,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,gHAAgH;IAChH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAwDD,eAAO,MAAM,UAAU,4GAwHtB,CAAC"}
@@ -1,10 +1,12 @@
1
1
  export interface TextCellProps {
2
2
  value: string | null | undefined;
3
3
  variant?: "primary" | "secondary" | "muted";
4
+ /** Monospace figures — for codes, serials, IDs (composes with `variant`). */
5
+ mono?: boolean;
4
6
  className?: string;
5
7
  truncate?: boolean;
6
8
  maxWidth?: string;
7
9
  }
8
10
  /** Standard text cell for table columns — null/undefined renders as "—". */
9
- export declare function TextCell({ value, variant, className, truncate, maxWidth }: TextCellProps): import("react").JSX.Element;
11
+ export declare function TextCell({ value, variant, mono, className, truncate, maxWidth }: TextCellProps): import("react").JSX.Element;
10
12
  //# sourceMappingURL=TextCell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextCell.d.ts","sourceRoot":"","sources":["../../src/molecules/TextCell.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,aAAa,+BAepG"}
1
+ {"version":3,"file":"TextCell.d.ts","sourceRoot":"","sources":["../../src/molecules/TextCell.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,6EAA6E;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,aAAa,+BAgB1G"}
@@ -19,6 +19,7 @@ export { MetricTile, type MetricTileProps, type MetricTileTone, type MetricTileS
19
19
  export { SectionCard, type SectionCardProps } from './SectionCard';
20
20
  export { Dropzone, type DropzoneProps, type FileRejection } from './Dropzone';
21
21
  export { AvatarCell, type AvatarCellProps } from './AvatarCell';
22
+ export { IconCell, type IconCellProps } from './IconCell';
22
23
  export { StateBlock, type StateBlockProps, type StateBlockState } from './StateBlock';
23
24
  export { MonitoringCard, type MonitoringCardProps } from './MonitoringCard';
24
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/molecules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACjI,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAClI,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/molecules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACjI,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAClI,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { ReactNode } from 'react';
2
+ export interface EditableGridColumn {
3
+ /** Canonical column key — matches `EditableGridRow.cells` keys. */
4
+ key: string;
5
+ /** Header content (string or any node). */
6
+ label: ReactNode;
7
+ /**
8
+ * Accessible name for the cell editors of this column — required only when
9
+ * `label` is a non-string node (otherwise the string `label`, else `key`, is
10
+ * used).
11
+ */
12
+ ariaLabel?: string;
13
+ /** Value semantics — drives the cell editor; NOT a domain enum. */
14
+ type: "STRING" | "NUMBER" | "DATE" | "DATETIME" | "ENUM";
15
+ required?: boolean;
16
+ /** Options when `type === "ENUM"`. */
17
+ enumValues?: string[];
18
+ /** Format placeholder shown in the cell (e.g. "MM.yyyy") — display only. */
19
+ hint?: string;
20
+ /**
21
+ * Optional value transform applied on blur/commit (e.g. TR decimal comma
22
+ * "1,5" → "1.5"). Default: identity — the grid never coerces, the consumer's
23
+ * backend owns parsing (legacy `strToNumber` parity).
24
+ */
25
+ normalize?: (raw: string) => string;
26
+ }
27
+ export interface EditableGridRow {
28
+ /**
29
+ * STABLE identity — server `row_number` (review) or a client uuid assigned
30
+ * once at creation (compose). NEVER the array index (anti-pattern #2): status,
31
+ * errors and cell edits all map by `rowId`, so reorder/paginate can't skew them.
32
+ */
33
+ rowId: string;
34
+ /** Column key → raw string value (no client-side type coercion). */
35
+ cells: Record<string, string>;
36
+ /** Row-level validation state — drives the trailing status column. */
37
+ status?: "pending" | "valid" | "invalid";
38
+ /** Row-level messages, surfaced in the status Popover. */
39
+ errors?: string[];
40
+ /** Caller-managed; the grid never sets it (consumer drives re-validate). */
41
+ dirty?: boolean;
42
+ }
43
+ /** Localized accessible names for the row-status indicator (§4 — no baked literals). */
44
+ export interface EditableGridStatusLabels {
45
+ pending?: string;
46
+ valid?: string;
47
+ invalid?: string;
48
+ }
49
+ export interface EditableGridProps {
50
+ columns: EditableGridColumn[];
51
+ rows: EditableGridRow[];
52
+ onRowsChange: (rows: EditableGridRow[]) => void;
53
+ /** Show an "add row" control (appends an empty row). */
54
+ allowRowAdd?: boolean;
55
+ /** Show a per-row delete control. */
56
+ allowRowDelete?: boolean;
57
+ /** Show a "clear all" control (empties every cell, keeps rows & rowIds). */
58
+ allowClear?: boolean;
59
+ /** Read-only grid: no cell edit, no add/delete/clear controls. */
60
+ readOnly?: boolean;
61
+ /** Column keys that are never editable even when the grid is editable. */
62
+ readOnlyColumns?: string[];
63
+ /**
64
+ * Per-cell validation, keyed rowId → columnKey → message. Independent of
65
+ * `row.status`/`row.errors`; tints the cell border + native title.
66
+ */
67
+ cellErrors?: Record<string, Record<string, string>>;
68
+ /**
69
+ * Accessible labels for the row-status indicator, keyed by status. Supply
70
+ * localized text (e.g. `{ invalid: "Geçersiz" }`); when a status is absent
71
+ * here it falls back to a localized default from the ui-kit `common` bundle
72
+ * (`editablegrid.status_{pending,valid,invalid}`) — never a raw enum value.
73
+ */
74
+ statusLabels?: EditableGridStatusLabels;
75
+ /**
76
+ * Scroll a specific row into view (acceptance-(c) "scroll-to-row"). Set to a
77
+ * `rowId` (e.g. the first invalid row after a validate pass); changing the
78
+ * value re-triggers the scroll.
79
+ */
80
+ scrollToRowId?: string;
81
+ /** Force windowing on/off. Default: auto-on when `rows.length > virtualizeThreshold`. */
82
+ virtualized?: boolean;
83
+ /** Auto-virtualize above this row count (default 100). */
84
+ virtualizeThreshold?: number;
85
+ /** Estimated row height (px) for the virtualizer (default 40). */
86
+ rowHeight?: number;
87
+ /** Scroll viewport height used when virtualizing (default 480). */
88
+ maxHeight?: number | string;
89
+ /** Cap enforced by add-row AND paste-append (overflow dropped). */
90
+ maxRows?: number;
91
+ /**
92
+ * Called when a **paste** appends rows past `maxRows`, with the number of
93
+ * dropped rows. (Add-row is prevented up front by disabling the button at the
94
+ * cap, so it never reports here.)
95
+ */
96
+ onMaxRowsExceeded?: (droppedCount: number) => void;
97
+ addRowLabel?: ReactNode;
98
+ emptyState?: ReactNode;
99
+ className?: string;
100
+ }
101
+ /**
102
+ * EditableGrid — spreadsheet-style, controlled, prop-driven data-entry organism
103
+ * (GAP-EDITGRID). Composition of ui-kit `Table`/`Input`/`Badge`/`Popover`
104
+ * primitives — no third-party grid, no package fork (ADR-010).
105
+ *
106
+ * Fully generic (§13): the same API serves MDM's bulk-entry (compose/review) and
107
+ * any other consumer's manual-entry grid — domain vocabulary maps onto generic
108
+ * capability flags + typed columns, never leaks into this contract.
109
+ */
110
+ export declare const EditableGrid: import('react').ForwardRefExoticComponent<EditableGridProps & import('react').RefAttributes<HTMLTableElement>>;
111
+ //# sourceMappingURL=EditableGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditableGrid.d.ts","sourceRoot":"","sources":["../../../src/organisms/EditableGrid/EditableGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAYf,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,KAAK,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,sEAAsE;IACtE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACzC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wFAAwF;AACxF,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,YAAY,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAEhD,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qCAAqC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC;IAExC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,yFAAyF;IACzF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,gHAgXxB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { ClipboardEvent, KeyboardEvent } from 'react';
2
+ import { EditableGridColumn } from './EditableGrid';
3
+ export interface EditableGridCellProps {
4
+ column: EditableGridColumn;
5
+ value: string;
6
+ /** Per-cell validation message (from `cellErrors[rowId][column.key]`). */
7
+ error?: string;
8
+ disabled?: boolean;
9
+ onChange: (value: string) => void;
10
+ refCb: (el: HTMLInputElement | HTMLSelectElement | null) => void;
11
+ onKeyDown: (e: KeyboardEvent<HTMLInputElement | HTMLSelectElement>) => void;
12
+ onPaste: (e: ClipboardEvent<HTMLInputElement | HTMLSelectElement>) => void;
13
+ }
14
+ /**
15
+ * EditableGridCell — one type-aware editable cell.
16
+ *
17
+ * Values are ALWAYS raw strings (backend owns parsing — legacy `strToNumber`
18
+ * parity + MDM G1 `cells: Record<string,string>`); no client-side coercion.
19
+ * `column.normalize` (e.g. TR "1,5"→"1.5") is applied on blur (commit), not on
20
+ * every keystroke, so it never fights the user mid-type.
21
+ *
22
+ * Accessibility: every cell carries an accessible name (`column.ariaLabel`, else
23
+ * a string `column.label`, else `column.key`) so screen readers announce the
24
+ * field; a per-cell `error` sets `aria-invalid`, tints the border, and is linked
25
+ * via `aria-describedby` to a visually-hidden message.
26
+ */
27
+ export declare function EditableGridCell({ column, value, error, disabled, onChange, refCb, onKeyDown, onPaste, }: EditableGridCellProps): import("react").JSX.Element;
28
+ //# sourceMappingURL=EditableGridCell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditableGridCell.d.ts","sourceRoot":"","sources":["../../../src/organisms/EditableGrid/EditableGridCell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IACjE,SAAS,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;CAC5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,SAAS,EACT,OAAO,GACR,EAAE,qBAAqB,+BA6EvB"}
@@ -0,0 +1,4 @@
1
+ export { EditableGrid } from './EditableGrid';
2
+ export type { EditableGridProps, EditableGridColumn, EditableGridRow, EditableGridStatusLabels, } from './EditableGrid';
3
+ export { EditableGridCell, type EditableGridCellProps } from './EditableGridCell';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organisms/EditableGrid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { KeyboardEvent } from 'react';
2
+ export interface EditableGridKeyboardNavOptions {
3
+ /** Whether a column accepts focus/edit — read-only columns are skipped by nav. */
4
+ isColumnEditable: (colKey: string) => boolean;
5
+ /**
6
+ * Bring a row into view before focusing it (virtualized mode) — typically
7
+ * `virtualizer.scrollToIndex`. Harmless/no-op when not virtualizing.
8
+ */
9
+ ensureRowVisible?: (rowIndex: number) => void;
10
+ }
11
+ /**
12
+ * useEditableGridKeyboardNav — roving spreadsheet focus for `EditableGrid`.
13
+ *
14
+ * Focus is tracked by a `Map` keyed `${rowId}:${columnKey}` (NEVER by array
15
+ * index — the grid's stable-rowId contract, legacy anti-pattern #2). Navigation
16
+ * derives neighbours from the CURRENT order arrays (held in refs so the handler
17
+ * closes over live data without re-binding every keystroke) and SKIPS read-only
18
+ * columns:
19
+ * - Tab / Shift+Tab → next / previous editable cell (wraps across rows); at
20
+ * the grid boundary it does NOT preventDefault, so focus escapes the grid
21
+ * naturally (no WCAG keyboard trap)
22
+ * - Enter / Shift+Enter, ArrowDown / ArrowUp → down / up the same column
23
+ * - ArrowLeft / ArrowRight → previous / next editable column in the same row,
24
+ * but ONLY when the caret is at the field edge (intra-cell editing wins first)
25
+ *
26
+ * `<select>` cells (ENUM columns) keep their native Arrow behaviour (option
27
+ * cycling) — only Tab / Enter navigate away from them.
28
+ *
29
+ * When the target row is not mounted (virtualized window), `focusCell` scrolls
30
+ * it into view via `ensureRowVisible` and retries focus after it mounts.
31
+ */
32
+ export declare function useEditableGridKeyboardNav(rowIds: string[], colKeys: string[], opts: EditableGridKeyboardNavOptions): {
33
+ cellRefs: import('react').RefObject<Map<string, HTMLInputElement | HTMLSelectElement>>;
34
+ setCellRef: (rowId: string, colKey: string) => (el: HTMLInputElement | HTMLSelectElement | null) => void;
35
+ focusCell: (rowId: string, colKey: string) => void;
36
+ handleKeyDown: (e: KeyboardEvent<HTMLInputElement | HTMLSelectElement>, rowId: string, colKey: string) => void;
37
+ };
38
+ //# sourceMappingURL=useEditableGridKeyboardNav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditableGridKeyboardNav.d.ts","sourceRoot":"","sources":["../../../src/organisms/EditableGrid/useEditableGridKeyboardNav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAEhE,MAAM,WAAW,8BAA8B;IAC7C,kFAAkF;IAClF,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,8BAA8B;;wBAc1B,MAAM,UAAU,MAAM,UACvB,gBAAgB,GAAG,iBAAiB,GAAG,IAAI;uBAQd,MAAM,UAAU,MAAM;uBAiEtD,aAAa,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,SAAS,MAAM,UAAU,MAAM;EAwDzF"}
@@ -1,5 +1,5 @@
1
1
  import { SelectOption } from '../atoms/Select';
2
- export type FilterFieldType = "text" | "select" | "date" | "number" | "boolean";
2
+ export type FilterFieldType = "text" | "select" | "date" | "number" | "boolean" | "combobox";
3
3
  export interface FilterField {
4
4
  key: string;
5
5
  label: string;
@@ -11,6 +11,16 @@ export interface FilterField {
11
11
  /** For `type: "select"` — render a searchable (type-to-filter) dropdown.
12
12
  * Forwarded to the underlying `Select`; ignored for other field types. */
13
13
  searchable?: boolean;
14
+ /**
15
+ * For `type: "combobox"` (async server-lookup filter field) — fired (debounced
16
+ * ~300ms by the underlying `Combobox`) with the typed query. Fetch matching
17
+ * options externally and re-pass `fields` with the updated `options`; this is
18
+ * how a large/remote set (e.g. a user/creator directory) is filtered without
19
+ * preloading everything into a static `select`. Ignored for other field types.
20
+ */
21
+ onSearch?: (query: string) => void;
22
+ /** For `type: "combobox"` — show the loading spinner while `options` load. */
23
+ loading?: boolean;
14
24
  /**
15
25
  * Key of the field this one depends on. When the parent field's value
16
26
  * changes, this field's staged value is auto-cleared (e.g. city → district).
@@ -1 +1 @@
1
- {"version":3,"file":"FilterPanel.d.ts","sourceRoot":"","sources":["../../src/organisms/FilterPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAsB5D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEhF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB;;0FAEsF;IACtF,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;+EAC2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AA8JD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC/C;;;oEAGgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,MAAM,EAAE,cAAc,EACtB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,aAAoB,GACrB,EAAE,gBAAgB,+BA+JlB"}
1
+ {"version":3,"file":"FilterPanel.d.ts","sourceRoot":"","sources":["../../src/organisms/FilterPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAuB5D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE7F,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB;;0FAEsF;IACtF,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;+EAC2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AA8JD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC/C;;;oEAGgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,MAAM,EAAE,cAAc,EACtB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,aAAoB,GACrB,EAAE,gBAAgB,+BAoKlB"}
@@ -16,5 +16,6 @@ export { JsonViewer, type JsonViewerProps } from './JsonViewer';
16
16
  export { PageHeader, type PageHeaderProps } from './PageHeader';
17
17
  export { Stepper, type StepperProps, type StepperStep, type StepperStatus } from './Stepper';
18
18
  export { GlassTableShell, type GlassTableShellProps } from './GlassTableShell';
19
+ export { EditableGrid, type EditableGridProps, type EditableGridColumn, type EditableGridRow, type EditableGridStatusLabels, } from './EditableGrid';
19
20
  export { Sidebar, SidebarNavGroup, SidebarNavItem, type SidebarProps, type SidebarNavGroupProps, type SidebarNavItemProps, } from './Sidebar';
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/organisms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACpI,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,KAAK,0BAA0B,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACvN,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACT,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7H,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,OAAO,EACP,eAAe,EACf,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/organisms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACpI,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,KAAK,0BAA0B,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACvN,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACT,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7H,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,wBAAwB,GAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,OAAO,EACP,eAAe,EACf,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC"}
@@ -0,0 +1,50 @@
1
+ const o = { ara: "Ara...", filtre: "Filtre", kaydet: "Kaydet", iptal: "İptal", sil: "Sil", duzenle: "Düzenle", ekle: "Ekle", kapat: "Kapat", daha_fazla: "Daha fazla", temizle: "Temizle", tamam: "Tamam", geri: "Geri", ileri: "İleri", devam: "Devam", calistir: "Çalıştır", onayla: "Onayla", gonder: "Gönder", yukle: "Yükle", indir: "İndir", kopyala: "Kopyala", kopyalandi: "Kopyalandı", yapistir: "Yapıştır", sec: "Seç", vazgec: "Vazgeç", detay: "Detay", detaya_git: "Detaya Git", yenile: "Yenile", disa_aktar: "Dışa Aktar", evet: "Evet", hayir: "Hayır", tumu: "Tümü", yok: "Yok", olustur: '"{{value}}" oluştur' }, s = { sayfa: "Sayfa", toplam: "Toplam", secili: "Seçili", kayit_bulunamadi: "Kayıt bulunamadı", siralama: "Sıralama", filtrele: "Filtrele", tumunu_sec: "Tümünü Seç", secimi_kaldir: "Seçimi Kaldır", satirlar: "satır", sayfa_basina: "sayfa başına", eylemler: "Eylemler" }, d = { zorunlu_alan: "Bu alan zorunludur", gecersiz_deger: "Geçersiz değer", min_karakter: "En az {{min}} karakter olmalıdır", max_karakter: "En fazla {{max}} karakter olmalıdır", email_gecersiz: "Geçerli bir e-posta adresi giriniz", sayi_gecersiz: "Geçerli bir sayı giriniz" }, y = { emin_misiniz: "Emin misiniz?", bu_islem_geri_alinamaz: "Bu işlem geri alınamaz.", onay: "Onayla", vazgec: "Vazgeç", silme_onay: "Bu kaydı silmek istediğinize emin misiniz?", silme_baslik: "Kaydı Sil", entity_silme_onay: "kalıcı olarak silinecek. Bu işlem geri alınamaz." }, u = { karanlik_mod: "Karanlık Mod", aydinlik_mod: "Aydınlık Mod", tema_degistir: "Tema Değiştir" }, c = { bugun: "Bugün", dun: "Dün", bu_hafta: "Bu Hafta", bu_ay: "Bu Ay", gecen_ay: "Geçen Ay", son_7_gun: "Son 7 Gün", son_30_gun: "Son 30 Gün", baslangic: "Başlangıç", bitis: "Bitiş", tarih_sec: "Tarih Seçiniz", saat: "Saat" }, _ = { onceki_sayfa: "Önceki Sayfa", sonraki_sayfa: "Sonraki Sayfa", previous_page: "Önceki sayfa", next_page: "Sonraki sayfa", sayfa_x_y: "Sayfa {{current}} / {{total}}", kayit_gosteriliyor: "{{from}}-{{to}} / {{total}} kayıt gösteriliyor", ilk_sayfa: "İlk Sayfa", son_sayfa: "Son Sayfa" }, m = { kayit_bulunamadi: "Kayıt bulunamadı", henuz_veri_yok: "Henüz veri yok", sonuc_bulunamadi: "Aradığınız kriterlere uygun sonuç bulunamadı" }, k = { basarili: "Başarılı", hata: "Hata", uyari: "Uyarı", bilgi: "Bilgi", yukleniyor: "Yükleniyor...", kaydediliyor: "Kaydediliyor...", siliniyor: "Siliniyor..." }, g = { status_pending: "Bekliyor", status_valid: "Geçerli", status_invalid: "Geçersiz" }, f = { filtre_uygula: "Filtreyi Uygula", filtreleri_temizle: "Filtreleri Temizle", aktif_filtre: "{{count}} aktif filtre", yes: "Evet", no: "Hayır", op_contains: "İçerir", op_equals: "Eşittir", op_not_equals: "Eşit Değil", op_starts_with: "Başlar", op_ends_with: "Biter", op_greater: "Büyüktür", op_less: "Küçüktür", op_greater_eq: "Büyük Eşit", op_less_eq: "Küçük Eşit", operator_sec: "Operatör seçin", secili: "Seçili" }, p = { ham_json: "Ham JSON", form_gorunumu: "Form Görünümü", formatla: "Formatla", gecersiz_json: "Geçersiz JSON formatı", kopyalandi: "Kopyalandı!", kopyala: "Kopyala", icerik: "JSON içeriği", duzenle: "Düzenle", goruntule: "Görüntüle" }, b = { bold: "Kalın", italic: "İtalik", strike: "Üstü çizili", h2: "Başlık 2", h3: "Başlık 3", bulletList: "Madde işaretli liste", orderedList: "Numaralı liste", link: "Bağlantı", unlink: "Bağlantıyı kaldır", blockquote: "Alıntı", code: "Kod", undo: "Geri al", redo: "Yinele", linkUrl: "https://…", linkApply: "Bağlantıyı uygula", linkCancel: "İptal", toolbar: "Biçimlendirme", editor: "Zengin metin editörü", linkInput: "Bağlantı adresi" }, h = { webglTitle: "WebGL kullanılamıyor", webglBody: "Bu harita yüzeyi render için WebGL gerektirir. Lütfen farklı bir tarayıcı deneyin veya yöneticinizle iletişime geçin.", layerControl: "Harita katmanları" }, N = { sifreyi_goster: "Şifreyi göster", sifreyi_gizle: "Şifreyi gizle", onceki_ay: "Önceki ay", sonraki_ay: "Sonraki ay", filtreyi_kaldir: "{{name}} filtresini kaldır", kopyala: "Kopyala", panel: "Panel", iletisim_kutusu: "İletişim kutusu", kaldir: "{{label}} seçimini kaldır", filtrele: "Seçenekleri filtrele", filtreler: "Filtreler", breadcrumb: "Yol haritası", pagination: "Sayfalama", detay_sayfasi: "Detay sayfası", filtreler_kenar: "Filtre kenar çubuğu", giris: "Giriş", rapor_kriterleri: "Rapor kriterleri" }, S = { lifecycle: { ACTIVE: "Aktif", INACTIVE: "Pasif", MAINTENANCE: "Bakımda", FAULTY: "Arızalı" }, power: { ON: "Enerjili", OFF: "Enerji Yok", UNKNOWN: "Bilinmiyor" }, disconnection: { ON: "Enerji Var", OFF: "Enerji Yok", UNKNOWN: "Bilinmiyor", OPENING: "Açılıyor", CLOSING: "Kapanıyor" } }, z = { hero: { live: "CANLI", fleetOnline: "AKTİF SAYAÇLAR", online: "aktif", vs1h: "vs 1s", fleet: { online: "AKTİF", offline: "PASİF", unknown: "ENERJİSİZ" }, readingSla24h: "OKUMA SLA · 24S", target: "hedef", activeOutages: "AKTİF KESİNTİLER", affectedMeters: "etkilenen sayaç", alarm: { crit: "KRİTİK", warn: "UYARI", viewDetails: "{{slug}} detaylarını görüntüle" }, tape: { ariaLabel: "Son sistem olayları" } } }, r = {
2
+ common: o,
3
+ table: s,
4
+ form: d,
5
+ dialog: y,
6
+ theme: u,
7
+ date: c,
8
+ pagination: _,
9
+ empty: m,
10
+ status: k,
11
+ editablegrid: g,
12
+ filter: f,
13
+ json_editor: p,
14
+ rich_text_editor: b,
15
+ map_shell: h,
16
+ aria: N,
17
+ detail_status: S,
18
+ dashboard: z
19
+ }, v = { ara: "Search...", filtre: "Filter", kaydet: "Save", iptal: "Cancel", sil: "Delete", duzenle: "Edit", ekle: "Add", kapat: "Close", daha_fazla: "More", temizle: "Clear", tamam: "OK", geri: "Back", ileri: "Next", devam: "Continue", calistir: "Execute", onayla: "Confirm", gonder: "Send", yukle: "Upload", indir: "Download", kopyala: "Copy", kopyalandi: "Copied", yapistir: "Paste", sec: "Select", vazgec: "Cancel", detay: "Detail", detaya_git: "Go to Detail", yenile: "Refresh", disa_aktar: "Export", evet: "Yes", hayir: "No", tumu: "All", yok: "None", olustur: 'Create "{{value}}"' }, E = { sayfa: "Page", toplam: "Total", secili: "Selected", kayit_bulunamadi: "No records found", siralama: "Sort", filtrele: "Filter", tumunu_sec: "Select All", secimi_kaldir: "Deselect All", satirlar: "rows", sayfa_basina: "per page", eylemler: "Actions" }, A = { zorunlu_alan: "This field is required", gecersiz_deger: "Invalid value", min_karakter: "Must be at least {{min}} characters", max_karakter: "Must be at most {{max}} characters", email_gecersiz: "Please enter a valid email address", sayi_gecersiz: "Please enter a valid number" }, T = { emin_misiniz: "Are you sure?", bu_islem_geri_alinamaz: "This action cannot be undone.", onay: "Confirm", vazgec: "Cancel", silme_onay: "Are you sure you want to delete this record?", silme_baslik: "Delete Record", entity_silme_onay: "will be permanently deleted. This action cannot be undone." }, F = { karanlik_mod: "Dark Mode", aydinlik_mod: "Light Mode", tema_degistir: "Toggle Theme" }, O = { bugun: "Today", dun: "Yesterday", bu_hafta: "This Week", bu_ay: "This Month", gecen_ay: "Last Month", son_7_gun: "Last 7 Days", son_30_gun: "Last 30 Days", baslangic: "Start", bitis: "End", tarih_sec: "Select Date", saat: "Time" }, B = { onceki_sayfa: "Previous Page", sonraki_sayfa: "Next Page", previous_page: "Previous page", next_page: "Next page", sayfa_x_y: "Page {{current}} / {{total}}", kayit_gosteriliyor: "Showing {{from}}-{{to}} of {{total}} records", ilk_sayfa: "First Page", son_sayfa: "Last Page" }, L = { kayit_bulunamadi: "No records found", henuz_veri_yok: "No data yet", sonuc_bulunamadi: "No results matching your criteria" }, w = { basarili: "Success", hata: "Error", uyari: "Warning", bilgi: "Info", yukleniyor: "Loading...", kaydediliyor: "Saving...", siliniyor: "Deleting..." }, C = { status_pending: "Pending", status_valid: "Valid", status_invalid: "Invalid" }, K = { filtre_uygula: "Apply Filter", filtreleri_temizle: "Clear Filters", aktif_filtre: "{{count}} active filter(s)", yes: "Yes", no: "No", op_contains: "Contains", op_equals: "Equals", op_not_equals: "Not Equals", op_starts_with: "Starts With", op_ends_with: "Ends With", op_greater: "Greater Than", op_less: "Less Than", op_greater_eq: "Greater or Equal", op_less_eq: "Less or Equal", operator_sec: "Select operator", secili: "Selected" }, G = { ham_json: "Raw JSON", form_gorunumu: "Form View", formatla: "Format", gecersiz_json: "Invalid JSON format", kopyalandi: "Copied!", kopyala: "Copy", icerik: "JSON content", duzenle: "Edit", goruntule: "View" }, I = { bold: "Bold", italic: "Italic", strike: "Strikethrough", h2: "Heading 2", h3: "Heading 3", bulletList: "Bullet list", orderedList: "Numbered list", link: "Link", unlink: "Remove link", blockquote: "Quote", code: "Code", undo: "Undo", redo: "Redo", linkUrl: "https://…", linkApply: "Apply link", linkCancel: "Cancel", toolbar: "Formatting", editor: "Rich text editor", linkInput: "Link URL" }, D = { webglTitle: "WebGL is not available", webglBody: "This map surface needs WebGL to render. Please try a different browser or contact your administrator.", layerControl: "Map layers" }, R = { sifreyi_goster: "Show password", sifreyi_gizle: "Hide password", onceki_ay: "Previous month", sonraki_ay: "Next month", filtreyi_kaldir: "Remove {{name}} filter", kopyala: "Copy", panel: "Panel", iletisim_kutusu: "Dialog", kaldir: "Remove {{label}}", filtrele: "Filter options", filtreler: "Filters", breadcrumb: "Breadcrumb", pagination: "Pagination", detay_sayfasi: "Detail page", filtreler_kenar: "Filter sidebar", giris: "Sign in", rapor_kriterleri: "Report criteria" }, P = { lifecycle: { ACTIVE: "Active", INACTIVE: "Inactive", MAINTENANCE: "Maintenance", FAULTY: "Faulty" }, power: { ON: "Energized", OFF: "No Energy", UNKNOWN: "Unknown" }, disconnection: { ON: "Power OK", OFF: "No Power", UNKNOWN: "Unknown", OPENING: "Opening", CLOSING: "Closing" } }, U = { hero: { live: "LIVE", fleetOnline: "FLEET ONLINE", online: "online", vs1h: "vs 1h", fleet: { online: "ONLINE", offline: "OFF", unknown: "UNK" }, readingSla24h: "READING SLA · 24h", target: "target", activeOutages: "ACTIVE OUTAGES", affectedMeters: "meters affected", alarm: { crit: "CRIT", warn: "WARN", viewDetails: "View {{slug}} details" }, tape: { ariaLabel: "Recent system events" } } }, l = {
20
+ common: v,
21
+ table: E,
22
+ form: A,
23
+ dialog: T,
24
+ theme: F,
25
+ date: O,
26
+ pagination: B,
27
+ empty: L,
28
+ status: w,
29
+ editablegrid: C,
30
+ filter: K,
31
+ json_editor: G,
32
+ rich_text_editor: I,
33
+ map_shell: D,
34
+ aria: R,
35
+ detail_status: P,
36
+ dashboard: U
37
+ }, x = {
38
+ tr: { common: r },
39
+ en: { common: l }
40
+ };
41
+ function M(e, n = {}) {
42
+ const { namespace: a = "common", overwrite: i = !1, deep: t = !0 } = n;
43
+ return e.addResourceBundle("tr", a, r, t, i), e.addResourceBundle("en", a, l, t, i), e;
44
+ }
45
+ export {
46
+ l as e,
47
+ M as r,
48
+ r as t,
49
+ x as u
50
+ };
@@ -0,0 +1,29 @@
1
+ import { Rect, Size, Viewport } from './tooltipPosition';
2
+ export type { Rect, Size, Viewport };
3
+ export interface AnchoredPlacement {
4
+ top: number;
5
+ left: number;
6
+ /** Set only when `matchTriggerWidth` — the panel is pinned to the trigger width. */
7
+ width?: number;
8
+ placement: "bottom" | "top";
9
+ /** Available height on the chosen side; apply as `max-height` so long lists scroll. */
10
+ maxHeight: number;
11
+ }
12
+ export interface AnchoredOptions {
13
+ /** Trigger↔panel offset. @default 4 */
14
+ gap?: number;
15
+ /** Minimum padding from the viewport edge. @default 8 */
16
+ margin?: number;
17
+ /** Pin the panel width to the trigger width (Select); else use the panel's own width (DatePicker). */
18
+ matchTriggerWidth?: boolean;
19
+ }
20
+ /**
21
+ * Compute the fixed on-screen position for a dropdown panel anchored to a trigger.
22
+ *
23
+ * @param trigger Bounding rect of the trigger element.
24
+ * @param panel Measured natural size of the panel.
25
+ * @param viewport Viewport dimensions.
26
+ * @param opts gap / margin / matchTriggerWidth.
27
+ */
28
+ export declare function computeAnchoredPosition(trigger: Rect, panel: Size, viewport: Viewport, opts?: AnchoredOptions): AnchoredPlacement;
29
+ //# sourceMappingURL=anchoredPanelPosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchoredPanelPosition.d.ts","sourceRoot":"","sources":["../../src/utils/anchoredPanelPosition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE9D,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAErC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,eAAoB,GACzB,iBAAiB,CAuCnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nar-bus/ui-kit",
3
- "version": "1.10.0",
3
+ "version": "1.12.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -1,48 +0,0 @@
1
- const o = { ara: "Ara...", filtre: "Filtre", kaydet: "Kaydet", iptal: "İptal", sil: "Sil", duzenle: "Düzenle", ekle: "Ekle", kapat: "Kapat", daha_fazla: "Daha fazla", temizle: "Temizle", tamam: "Tamam", geri: "Geri", ileri: "İleri", devam: "Devam", calistir: "Çalıştır", onayla: "Onayla", gonder: "Gönder", yukle: "Yükle", indir: "İndir", kopyala: "Kopyala", kopyalandi: "Kopyalandı", yapistir: "Yapıştır", sec: "Seç", vazgec: "Vazgeç", detay: "Detay", detaya_git: "Detaya Git", yenile: "Yenile", disa_aktar: "Dışa Aktar", evet: "Evet", hayir: "Hayır", tumu: "Tümü", yok: "Yok", olustur: '"{{value}}" oluştur' }, s = { sayfa: "Sayfa", toplam: "Toplam", secili: "Seçili", kayit_bulunamadi: "Kayıt bulunamadı", siralama: "Sıralama", filtrele: "Filtrele", tumunu_sec: "Tümünü Seç", secimi_kaldir: "Seçimi Kaldır", satirlar: "satır", sayfa_basina: "sayfa başına", eylemler: "Eylemler" }, d = { zorunlu_alan: "Bu alan zorunludur", gecersiz_deger: "Geçersiz değer", min_karakter: "En az {{min}} karakter olmalıdır", max_karakter: "En fazla {{max}} karakter olmalıdır", email_gecersiz: "Geçerli bir e-posta adresi giriniz", sayi_gecersiz: "Geçerli bir sayı giriniz" }, y = { emin_misiniz: "Emin misiniz?", bu_islem_geri_alinamaz: "Bu işlem geri alınamaz.", onay: "Onayla", vazgec: "Vazgeç", silme_onay: "Bu kaydı silmek istediğinize emin misiniz?", silme_baslik: "Kaydı Sil", entity_silme_onay: "kalıcı olarak silinecek. Bu işlem geri alınamaz." }, u = { karanlik_mod: "Karanlık Mod", aydinlik_mod: "Aydınlık Mod", tema_degistir: "Tema Değiştir" }, c = { bugun: "Bugün", dun: "Dün", bu_hafta: "Bu Hafta", bu_ay: "Bu Ay", gecen_ay: "Geçen Ay", son_7_gun: "Son 7 Gün", son_30_gun: "Son 30 Gün", baslangic: "Başlangıç", bitis: "Bitiş", tarih_sec: "Tarih Seçiniz", saat: "Saat" }, m = { onceki_sayfa: "Önceki Sayfa", sonraki_sayfa: "Sonraki Sayfa", previous_page: "Önceki sayfa", next_page: "Sonraki sayfa", sayfa_x_y: "Sayfa {{current}} / {{total}}", kayit_gosteriliyor: "{{from}}-{{to}} / {{total}} kayıt gösteriliyor", ilk_sayfa: "İlk Sayfa", son_sayfa: "Son Sayfa" }, _ = { kayit_bulunamadi: "Kayıt bulunamadı", henuz_veri_yok: "Henüz veri yok", sonuc_bulunamadi: "Aradığınız kriterlere uygun sonuç bulunamadı" }, k = { basarili: "Başarılı", hata: "Hata", uyari: "Uyarı", bilgi: "Bilgi", yukleniyor: "Yükleniyor...", kaydediliyor: "Kaydediliyor...", siliniyor: "Siliniyor..." }, g = { filtre_uygula: "Filtreyi Uygula", filtreleri_temizle: "Filtreleri Temizle", aktif_filtre: "{{count}} aktif filtre", yes: "Evet", no: "Hayır", op_contains: "İçerir", op_equals: "Eşittir", op_not_equals: "Eşit Değil", op_starts_with: "Başlar", op_ends_with: "Biter", op_greater: "Büyüktür", op_less: "Küçüktür", op_greater_eq: "Büyük Eşit", op_less_eq: "Küçük Eşit", operator_sec: "Operatör seçin", secili: "Seçili" }, f = { ham_json: "Ham JSON", form_gorunumu: "Form Görünümü", formatla: "Formatla", gecersiz_json: "Geçersiz JSON formatı", kopyalandi: "Kopyalandı!", kopyala: "Kopyala", icerik: "JSON içeriği", duzenle: "Düzenle", goruntule: "Görüntüle" }, p = { bold: "Kalın", italic: "İtalik", strike: "Üstü çizili", h2: "Başlık 2", h3: "Başlık 3", bulletList: "Madde işaretli liste", orderedList: "Numaralı liste", link: "Bağlantı", unlink: "Bağlantıyı kaldır", blockquote: "Alıntı", code: "Kod", undo: "Geri al", redo: "Yinele", linkUrl: "https://…", linkApply: "Bağlantıyı uygula", linkCancel: "İptal", toolbar: "Biçimlendirme", editor: "Zengin metin editörü", linkInput: "Bağlantı adresi" }, h = { webglTitle: "WebGL kullanılamıyor", webglBody: "Bu harita yüzeyi render için WebGL gerektirir. Lütfen farklı bir tarayıcı deneyin veya yöneticinizle iletişime geçin.", layerControl: "Harita katmanları" }, b = { sifreyi_goster: "Şifreyi göster", sifreyi_gizle: "Şifreyi gizle", onceki_ay: "Önceki ay", sonraki_ay: "Sonraki ay", filtreyi_kaldir: "{{name}} filtresini kaldır", kopyala: "Kopyala", panel: "Panel", iletisim_kutusu: "İletişim kutusu", kaldir: "{{label}} seçimini kaldır", filtrele: "Seçenekleri filtrele", filtreler: "Filtreler", breadcrumb: "Yol haritası", pagination: "Sayfalama", detay_sayfasi: "Detay sayfası", filtreler_kenar: "Filtre kenar çubuğu", giris: "Giriş", rapor_kriterleri: "Rapor kriterleri" }, N = { lifecycle: { ACTIVE: "Aktif", INACTIVE: "Pasif", MAINTENANCE: "Bakımda", FAULTY: "Arızalı" }, power: { ON: "Enerjili", OFF: "Enerji Yok", UNKNOWN: "Bilinmiyor" }, disconnection: { ON: "Enerji Var", OFF: "Enerji Yok", UNKNOWN: "Bilinmiyor", OPENING: "Açılıyor", CLOSING: "Kapanıyor" } }, S = { hero: { live: "CANLI", fleetOnline: "AKTİF SAYAÇLAR", online: "aktif", vs1h: "vs 1s", fleet: { online: "AKTİF", offline: "PASİF", unknown: "ENERJİSİZ" }, readingSla24h: "OKUMA SLA · 24S", target: "hedef", activeOutages: "AKTİF KESİNTİLER", affectedMeters: "etkilenen sayaç", alarm: { crit: "KRİTİK", warn: "UYARI", viewDetails: "{{slug}} detaylarını görüntüle" }, tape: { ariaLabel: "Son sistem olayları" } } }, r = {
2
- common: o,
3
- table: s,
4
- form: d,
5
- dialog: y,
6
- theme: u,
7
- date: c,
8
- pagination: m,
9
- empty: _,
10
- status: k,
11
- filter: g,
12
- json_editor: f,
13
- rich_text_editor: p,
14
- map_shell: h,
15
- aria: b,
16
- detail_status: N,
17
- dashboard: S
18
- }, z = { ara: "Search...", filtre: "Filter", kaydet: "Save", iptal: "Cancel", sil: "Delete", duzenle: "Edit", ekle: "Add", kapat: "Close", daha_fazla: "More", temizle: "Clear", tamam: "OK", geri: "Back", ileri: "Next", devam: "Continue", calistir: "Execute", onayla: "Confirm", gonder: "Send", yukle: "Upload", indir: "Download", kopyala: "Copy", kopyalandi: "Copied", yapistir: "Paste", sec: "Select", vazgec: "Cancel", detay: "Detail", detaya_git: "Go to Detail", yenile: "Refresh", disa_aktar: "Export", evet: "Yes", hayir: "No", tumu: "All", yok: "None", olustur: 'Create "{{value}}"' }, E = { sayfa: "Page", toplam: "Total", secili: "Selected", kayit_bulunamadi: "No records found", siralama: "Sort", filtrele: "Filter", tumunu_sec: "Select All", secimi_kaldir: "Deselect All", satirlar: "rows", sayfa_basina: "per page", eylemler: "Actions" }, v = { zorunlu_alan: "This field is required", gecersiz_deger: "Invalid value", min_karakter: "Must be at least {{min}} characters", max_karakter: "Must be at most {{max}} characters", email_gecersiz: "Please enter a valid email address", sayi_gecersiz: "Please enter a valid number" }, A = { emin_misiniz: "Are you sure?", bu_islem_geri_alinamaz: "This action cannot be undone.", onay: "Confirm", vazgec: "Cancel", silme_onay: "Are you sure you want to delete this record?", silme_baslik: "Delete Record", entity_silme_onay: "will be permanently deleted. This action cannot be undone." }, T = { karanlik_mod: "Dark Mode", aydinlik_mod: "Light Mode", tema_degistir: "Toggle Theme" }, F = { bugun: "Today", dun: "Yesterday", bu_hafta: "This Week", bu_ay: "This Month", gecen_ay: "Last Month", son_7_gun: "Last 7 Days", son_30_gun: "Last 30 Days", baslangic: "Start", bitis: "End", tarih_sec: "Select Date", saat: "Time" }, O = { onceki_sayfa: "Previous Page", sonraki_sayfa: "Next Page", previous_page: "Previous page", next_page: "Next page", sayfa_x_y: "Page {{current}} / {{total}}", kayit_gosteriliyor: "Showing {{from}}-{{to}} of {{total}} records", ilk_sayfa: "First Page", son_sayfa: "Last Page" }, L = { kayit_bulunamadi: "No records found", henuz_veri_yok: "No data yet", sonuc_bulunamadi: "No results matching your criteria" }, w = { basarili: "Success", hata: "Error", uyari: "Warning", bilgi: "Info", yukleniyor: "Loading...", kaydediliyor: "Saving...", siliniyor: "Deleting..." }, B = { filtre_uygula: "Apply Filter", filtreleri_temizle: "Clear Filters", aktif_filtre: "{{count}} active filter(s)", yes: "Yes", no: "No", op_contains: "Contains", op_equals: "Equals", op_not_equals: "Not Equals", op_starts_with: "Starts With", op_ends_with: "Ends With", op_greater: "Greater Than", op_less: "Less Than", op_greater_eq: "Greater or Equal", op_less_eq: "Less or Equal", operator_sec: "Select operator", secili: "Selected" }, C = { ham_json: "Raw JSON", form_gorunumu: "Form View", formatla: "Format", gecersiz_json: "Invalid JSON format", kopyalandi: "Copied!", kopyala: "Copy", icerik: "JSON content", duzenle: "Edit", goruntule: "View" }, K = { bold: "Bold", italic: "Italic", strike: "Strikethrough", h2: "Heading 2", h3: "Heading 3", bulletList: "Bullet list", orderedList: "Numbered list", link: "Link", unlink: "Remove link", blockquote: "Quote", code: "Code", undo: "Undo", redo: "Redo", linkUrl: "https://…", linkApply: "Apply link", linkCancel: "Cancel", toolbar: "Formatting", editor: "Rich text editor", linkInput: "Link URL" }, D = { webglTitle: "WebGL is not available", webglBody: "This map surface needs WebGL to render. Please try a different browser or contact your administrator.", layerControl: "Map layers" }, G = { sifreyi_goster: "Show password", sifreyi_gizle: "Hide password", onceki_ay: "Previous month", sonraki_ay: "Next month", filtreyi_kaldir: "Remove {{name}} filter", kopyala: "Copy", panel: "Panel", iletisim_kutusu: "Dialog", kaldir: "Remove {{label}}", filtrele: "Filter options", filtreler: "Filters", breadcrumb: "Breadcrumb", pagination: "Pagination", detay_sayfasi: "Detail page", filtreler_kenar: "Filter sidebar", giris: "Sign in", rapor_kriterleri: "Report criteria" }, I = { lifecycle: { ACTIVE: "Active", INACTIVE: "Inactive", MAINTENANCE: "Maintenance", FAULTY: "Faulty" }, power: { ON: "Energized", OFF: "No Energy", UNKNOWN: "Unknown" }, disconnection: { ON: "Power OK", OFF: "No Power", UNKNOWN: "Unknown", OPENING: "Opening", CLOSING: "Closing" } }, R = { hero: { live: "LIVE", fleetOnline: "FLEET ONLINE", online: "online", vs1h: "vs 1h", fleet: { online: "ONLINE", offline: "OFF", unknown: "UNK" }, readingSla24h: "READING SLA · 24h", target: "target", activeOutages: "ACTIVE OUTAGES", affectedMeters: "meters affected", alarm: { crit: "CRIT", warn: "WARN", viewDetails: "View {{slug}} details" }, tape: { ariaLabel: "Recent system events" } } }, l = {
19
- common: z,
20
- table: E,
21
- form: v,
22
- dialog: A,
23
- theme: T,
24
- date: F,
25
- pagination: O,
26
- empty: L,
27
- status: w,
28
- filter: B,
29
- json_editor: C,
30
- rich_text_editor: K,
31
- map_shell: D,
32
- aria: G,
33
- detail_status: I,
34
- dashboard: R
35
- }, P = {
36
- tr: { common: r },
37
- en: { common: l }
38
- };
39
- function U(e, n = {}) {
40
- const { namespace: a = "common", overwrite: i = !1, deep: t = !0 } = n;
41
- return e.addResourceBundle("tr", a, r, t, i), e.addResourceBundle("en", a, l, t, i), e;
42
- }
43
- export {
44
- l as e,
45
- U as r,
46
- r as t,
47
- P as u
48
- };