@lmb-it/kitsconcerto-native 0.1.284 → 0.1.286

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 (75) hide show
  1. package/apps/mobile/src/Core/AutoComplete/index.cjs +12 -4
  2. package/apps/mobile/src/Core/AutoComplete/index.cjs.map +1 -1
  3. package/apps/mobile/src/Core/AutoComplete/index.js +12 -4
  4. package/apps/mobile/src/Core/AutoComplete/index.js.map +1 -1
  5. package/apps/mobile/src/Core/MultiSelect/index.cjs +7 -4
  6. package/apps/mobile/src/Core/MultiSelect/index.cjs.map +1 -1
  7. package/apps/mobile/src/Core/MultiSelect/index.js +7 -4
  8. package/apps/mobile/src/Core/MultiSelect/index.js.map +1 -1
  9. package/apps/mobile/src/ui/accordion/index.js +2 -2
  10. package/components/ImageCropper/compression.cjs +63 -0
  11. package/components/ImageCropper/compression.cjs.map +1 -0
  12. package/components/ImageCropper/compression.js +58 -0
  13. package/components/ImageCropper/compression.js.map +1 -0
  14. package/components/ImageCropper/constants.cjs +35 -0
  15. package/components/ImageCropper/constants.cjs.map +1 -0
  16. package/components/ImageCropper/constants.js +23 -0
  17. package/components/ImageCropper/constants.js.map +1 -0
  18. package/components/ImageCropper/cropperState.cjs +119 -0
  19. package/components/ImageCropper/cropperState.cjs.map +1 -0
  20. package/components/ImageCropper/cropperState.js +114 -0
  21. package/components/ImageCropper/cropperState.js.map +1 -0
  22. package/components/ImageCropper/encode.cjs +45 -0
  23. package/components/ImageCropper/encode.cjs.map +1 -0
  24. package/components/ImageCropper/encode.js +42 -0
  25. package/components/ImageCropper/encode.js.map +1 -0
  26. package/components/ImageCropper/encoderRegistry.cjs +13 -0
  27. package/components/ImageCropper/encoderRegistry.cjs.map +1 -0
  28. package/components/ImageCropper/encoderRegistry.js +9 -0
  29. package/components/ImageCropper/encoderRegistry.js.map +1 -0
  30. package/components/ImageCropper/encoders/rnImageEncoder.cjs +54 -0
  31. package/components/ImageCropper/encoders/rnImageEncoder.cjs.map +1 -0
  32. package/components/ImageCropper/encoders/rnImageEncoder.js +51 -0
  33. package/components/ImageCropper/encoders/rnImageEncoder.js.map +1 -0
  34. package/components/ImageCropper/geometry.cjs +208 -0
  35. package/components/ImageCropper/geometry.cjs.map +1 -0
  36. package/components/ImageCropper/geometry.js +186 -0
  37. package/components/ImageCropper/geometry.js.map +1 -0
  38. package/components/ImageCropper/index.cjs +436 -0
  39. package/components/ImageCropper/index.cjs.map +1 -0
  40. package/components/ImageCropper/index.js +434 -0
  41. package/components/ImageCropper/index.js.map +1 -0
  42. package/components/ImageCropper/pinchZoom.cjs +8 -0
  43. package/components/ImageCropper/pinchZoom.cjs.map +1 -0
  44. package/components/ImageCropper/pinchZoom.js +5 -0
  45. package/components/ImageCropper/pinchZoom.js.map +1 -0
  46. package/components/ImageCropper/useImageSource.cjs +87 -0
  47. package/components/ImageCropper/useImageSource.cjs.map +1 -0
  48. package/components/ImageCropper/useImageSource.js +84 -0
  49. package/components/ImageCropper/useImageSource.js.map +1 -0
  50. package/form/helpers/FormContainer/index.cjs +12 -2
  51. package/form/helpers/FormContainer/index.cjs.map +1 -1
  52. package/form/helpers/FormContainer/index.js +12 -2
  53. package/form/helpers/FormContainer/index.js.map +1 -1
  54. package/form/selects/AutoComplete/index.cjs +10 -1
  55. package/form/selects/AutoComplete/index.cjs.map +1 -1
  56. package/form/selects/AutoComplete/index.js +11 -2
  57. package/form/selects/AutoComplete/index.js.map +1 -1
  58. package/form/selects/MultiSelect/index.cjs +8 -1
  59. package/form/selects/MultiSelect/index.cjs.map +1 -1
  60. package/form/selects/MultiSelect/index.js +9 -2
  61. package/form/selects/MultiSelect/index.js.map +1 -1
  62. package/hooks/useComponentDefaults.cjs +62 -8
  63. package/hooks/useComponentDefaults.cjs.map +1 -1
  64. package/hooks/useComponentDefaults.js +62 -8
  65. package/hooks/useComponentDefaults.js.map +1 -1
  66. package/index.cjs +120 -115
  67. package/index.cjs.map +1 -1
  68. package/index.d.ts +494 -16
  69. package/index.js +2 -0
  70. package/index.js.map +1 -1
  71. package/package.json +13 -1
  72. package/packages/types/src/Theme/defaultTheme.cjs +135 -4
  73. package/packages/types/src/Theme/defaultTheme.cjs.map +1 -1
  74. package/packages/types/src/Theme/defaultTheme.js +135 -4
  75. package/packages/types/src/Theme/defaultTheme.js.map +1 -1
package/index.d.ts CHANGED
@@ -750,22 +750,60 @@ export interface ISelectSlots extends IFormElementBaseSlots {
750
750
  itemDisabled?: IElementSlotConfig;
751
751
  }
752
752
  /**
753
- * MultiSelect = Select + chip + per-item checkbox visuals.
754
- * Inherits ISelectSlots and adds chip/checkbox slots that only apply
755
- * to the multi-value variant.
756
- */
757
- export interface IMultiSelectSlots extends ISelectSlots {
753
+ * Chip-bearing selects — the slots shared by EVERY control that renders
754
+ * the current value as removable chips: MultiSelect (`display="chip"`)
755
+ * and AutoComplete with `isMultiple` (the Tags field).
756
+ *
757
+ * ⛔ IT IS ONE INTERFACE BECAUSE THE TWO CONTROLS DRIFTED. MultiSelect read
758
+ * `token` from the theme and drew a pill; AutoComplete hardcoded its own
759
+ * `pt.token` (background + colour, nothing else) and ignored the slot, so the
760
+ * same form showed pill chips in one field and PrimeReact's square chips in the
761
+ * next. The defaults now live ONCE, on the `Select` base group, and both
762
+ * controls read them from here.
763
+ */
764
+ export interface IChipInputSlots extends ISelectSlots {
765
+ /**
766
+ * ⛔ THE OUTER BOX OF A CHIPS FIELD — the element a consumer means by
767
+ * "the tags input". It holds the chips AND the text caret, and it is the
768
+ * one PrimeReact gives `.p-inputtext` to, so it is what has to carry the
769
+ * border / radius / background / padding that makes a tags field look like
770
+ * a text input.
771
+ *
772
+ * Web → `ul.p-autocomplete-multiple-container` (AutoComplete `pt.container`).
773
+ * Native → the field wrapper `View` that holds the chips and the `TextInput`.
774
+ *
775
+ * ⚠️ NOT `root` and NOT `container`. `root` is the inner input element and
776
+ * `container` is `KitsContainer`'s outermost Flex (label + field + error).
777
+ * Neither is the bordered box, which is why styling the chips field used to
778
+ * have nowhere to land: the only reachable slots were either inside the box
779
+ * or around the whole block.
780
+ *
781
+ * Defaults to transparent / border-less so the `inputGroup` chrome
782
+ * `KitsContainer` paints stays the single visible border. Give it a border
783
+ * here (or on an `attached` field, which has no `KitsContainer`) and it
784
+ * paints its own.
785
+ */
786
+ tokenContainer?: IElementSlotConfig;
758
787
  /**
759
788
  * Selected-value chip (small pill rendered for each selected item
760
- * when `display="chip"`). Drives bg / color / radius / padding via
761
- * inline style on `.p-multiselect-token`.
789
+ * when `display="chip"` / `isMultiple`). Drives bg / color / radius /
790
+ * padding via inline style on `.p-multiselect-token` and
791
+ * `.p-autocomplete-token`.
762
792
  */
763
793
  token?: IElementSlotConfig;
764
794
  /**
765
795
  * The "remove" icon inside a token chip. Drives color / size of
766
- * the close (×) icon via inline style on `.p-multiselect-token-icon`.
796
+ * the close (×) icon via inline style on `.p-multiselect-token-icon`
797
+ * and `.p-autocomplete-token-icon`.
767
798
  */
768
799
  tokenIcon?: IElementSlotConfig;
800
+ }
801
+ /**
802
+ * MultiSelect = chip-bearing select + per-item checkbox visuals.
803
+ * Inherits IChipInputSlots and adds the checkbox slots that only apply
804
+ * to the multi-value variant with an option list.
805
+ */
806
+ export interface IMultiSelectSlots extends IChipInputSlots {
769
807
  /**
770
808
  * Per-item checkbox box (also the header "select all"). Drives
771
809
  * border / bg / radius for the rounded square inside each row.
@@ -887,7 +925,7 @@ export interface IRadioSlots extends IFormElementBaseSlots {
887
925
  * `useComponentDefaults`) — derive from this to keep the runtime set
888
926
  * in sync with the type contract automatically.
889
927
  */
890
- export type AllSlotKeys = keyof IFormElementBaseSlots | keyof ITextInputSlots | keyof IDatepickerSlots | keyof ISelectSlots | keyof IMultiSelectSlots | keyof ISwitchSlots | keyof ICheckboxSlots | keyof IRadioSlots;
928
+ export type AllSlotKeys = keyof IFormElementBaseSlots | keyof ITextInputSlots | keyof IDatepickerSlots | keyof ISelectSlots | keyof IChipInputSlots | keyof IMultiSelectSlots | keyof ISwitchSlots | keyof ICheckboxSlots | keyof IRadioSlots | keyof IImageCropperSlots;
891
929
  /**
892
930
  * Wide superset of every form-element slot — the union of all
893
931
  * form-element slot interfaces.
@@ -937,6 +975,81 @@ export interface IButtonElementSlots {
937
975
  /** The text label inside the button */
938
976
  label?: IElementSlotConfig;
939
977
  }
978
+ /**
979
+ * Element slots for ImageCropper.
980
+ *
981
+ * ⛔ THE CROPPER IS DRAWN, NOT COMPOSED, SO IT NEEDS SLOTS NOTHING ELSE HAS.
982
+ * A shade that dims everything outside the window, a window outline, thirds
983
+ * guides, eight grips, a zoom readout — none of these is a Button or a Card
984
+ * with a different colour, and a consumer who cannot reach them cannot make
985
+ * the cropper look like the rest of their product. Eight new keys below; the
986
+ * rest are the names this library already uses for the same jobs.
987
+ *
988
+ * ⚠️ A SLOT ADDED HERE IS INERT UNTIL IT IS ADDED TO `ELEMENT_SLOT_KEYS` IN
989
+ * `useComponentDefaults.ts` TOO. That allowlist is what decides whether a slot
990
+ * is merged at all; a key in this interface and not in that set type-checks
991
+ * perfectly, themes without complaint, and renders nothing. See the note on
992
+ * that constant — it has caught this before.
993
+ */
994
+ export interface IImageCropperSlots {
995
+ /** The whole component's outer shell — border, radius, background. */
996
+ root?: IElementSlotConfig;
997
+ /** Top bar: title on one side, close on the other. */
998
+ header?: IElementSlotConfig;
999
+ /** The header's text. */
1000
+ title?: IElementSlotConfig;
1001
+ /** Everything between header and footer — stage plus preview. */
1002
+ content?: IElementSlotConfig;
1003
+ /**
1004
+ * The STAGE: the bounded box the image and the crop window live in.
1005
+ *
1006
+ * ⚠️ ITS SIZE IS THE VIEWPORT THE GEOMETRY IS WRITTEN AGAINST, so a
1007
+ * padding here changes what every pointer coordinate means. That is
1008
+ * intended — it is measured, not assumed — but it is not merely cosmetic.
1009
+ */
1010
+ container?: IElementSlotConfig;
1011
+ /** The action row — cancel, rotate, reset, save. */
1012
+ footer?: IElementSlotConfig;
1013
+ /** Icons inside the toolbar buttons. */
1014
+ icon?: IElementSlotConfig;
1015
+ /** Secondary text: the hint line, the "JPG · 320 KB" readout. */
1016
+ text?: IElementSlotConfig;
1017
+ /**
1018
+ * The crop window's own chrome — its outline and corner radius. The shape
1019
+ * that gets CUT OUT of the shade is `mask`; this is the line drawn on top.
1020
+ */
1021
+ cropWindow?: IElementSlotConfig;
1022
+ /**
1023
+ * The dimmed region OUTSIDE the crop window.
1024
+ *
1025
+ * ⚠️ ITS `backgroundColor` WANTS AN ALPHA TOKEN, not a solid colour —
1026
+ * `black-alpha-60` and friends are literal in both colour modes precisely
1027
+ * so a scrim never inverts. A solid value here hides the image completely.
1028
+ */
1029
+ shade?: IElementSlotConfig;
1030
+ /** The rule-of-thirds guides drawn inside the window. */
1031
+ gridLine?: IElementSlotConfig;
1032
+ /** One of the eight resize grips. */
1033
+ handle?: IElementSlotConfig;
1034
+ /** The pill that reads back the current zoom. */
1035
+ zoomChip?: IElementSlotConfig;
1036
+ /** The box around the live preview of the cropped result. */
1037
+ previewFrame?: IElementSlotConfig;
1038
+ /** The "drop an image here" target shown before a source is chosen. */
1039
+ dropZone?: IElementSlotConfig;
1040
+ /** The filled portion of the processing/compression bar. */
1041
+ progressFill?: IElementSlotConfig;
1042
+ /**
1043
+ * The crop window's cut-out SHAPE — a circle for avatars, a rect for
1044
+ * covers. Shares the Sidebar's `mask` name because it does the same job:
1045
+ * the overlay geometry, not the chrome drawn over it.
1046
+ */
1047
+ mask?: IElementSlotConfig;
1048
+ /** Zoom slider rail. Same name, same job, as the Switch's. */
1049
+ track?: IElementSlotConfig;
1050
+ /** Zoom slider knob. */
1051
+ thumb?: IElementSlotConfig;
1052
+ }
940
1053
  /** Element slots for Card */
941
1054
  export interface ICardElementSlots {
942
1055
  /** The card root element (outer container) */
@@ -1311,10 +1424,21 @@ export interface IKitsComponentDefaults {
1311
1424
  ColorPicker?: IComponentThemeConfig<ITextInputSlots>;
1312
1425
  PhoneInput?: IComponentThemeConfig<ITextInputSlots>;
1313
1426
  Datepicker?: IComponentThemeConfig<IDatepickerSlots>;
1314
- Select?: IComponentThemeConfig<ISelectSlots>;
1427
+ /**
1428
+ * Select base group.
1429
+ *
1430
+ * ⛔ TYPED AS `IChipInputSlots`, NOT `ISelectSlots`, ON PURPOSE. The chip
1431
+ * defaults (`token` / `tokenIcon` / `tokenContainer`) live HERE so the two
1432
+ * chip-bearing members — MultiSelect and AutoComplete-with-`isMultiple`
1433
+ * (Tags) — read one set of values instead of each carrying its own. A chip
1434
+ * slot on a shape that draws no chips (Dropdown, ListBox) is inert, the same
1435
+ * way the option-list slots are inert on a select with no popover.
1436
+ */
1437
+ Select?: IComponentThemeConfig<IChipInputSlots>;
1315
1438
  DropdownSelect?: IComponentThemeConfig<ISelectSlots>;
1316
1439
  TreeSelect?: IComponentThemeConfig<ISelectSlots>;
1317
- AutoComplete?: IComponentThemeConfig<ISelectSlots>;
1440
+ /** AutoComplete — chips when `isMultiple` (this is the Tags field). */
1441
+ AutoComplete?: IComponentThemeConfig<IChipInputSlots>;
1318
1442
  ListBox?: IComponentThemeConfig<ISelectSlots>;
1319
1443
  CascadeSelect?: IComponentThemeConfig<ISelectSlots>;
1320
1444
  MultiSelect?: IComponentThemeConfig<IMultiSelectSlots>;
@@ -1331,6 +1455,7 @@ export interface IKitsComponentDefaults {
1331
1455
  */
1332
1456
  Table?: IComponentThemeConfig<ITableElementSlots> & ITableFlatConfig;
1333
1457
  Sidebar?: IComponentThemeConfig<ISidebarElementSlots>;
1458
+ ImageCropper?: IComponentThemeConfig<IImageCropperSlots>;
1334
1459
  Accordion?: IComponentThemeConfig<IAccordionElementSlots>;
1335
1460
  Group?: IComponentThemeConfig<IGroupElementSlots>;
1336
1461
  Header?: IComponentThemeConfig<IHeaderElementSlots>;
@@ -5105,6 +5230,17 @@ export interface IKitsContainer extends IFormSingleElement, Omit<ElementProps, "
5105
5230
  additionalClassName?: string;
5106
5231
  /** Per-element styles (IStyleClasses) passed from the parent form input component */
5107
5232
  elementStyles?: Record<string, Record<string, any>>;
5233
+ /**
5234
+ * Per-element extra attributes (`className`, `data-*`, …) passed from the
5235
+ * parent form input component — `useComponentDefaults().elementProps`.
5236
+ *
5237
+ * ⛔ WITHOUT THIS, `slots.container.props` AND `slots.inputGroup.props`
5238
+ * WENT NOWHERE. KitsContainer owns both of those elements, so a class a
5239
+ * consumer put on either slot had no route to the DOM: the container only
5240
+ * ever received `elementStyles`. Optional, so a form input that does not
5241
+ * pass it behaves exactly as before.
5242
+ */
5243
+ elementProps?: Record<string, Record<string, any>>;
5108
5244
  /**
5109
5245
  * When true, strips the input-group chrome (border, border-radius, overflow, focus ring).
5110
5246
  * Used by Switch, Checkbox, and Radio which render their own visual controls
@@ -8083,6 +8219,249 @@ export interface IWidgetData<T> {
8083
8219
  };
8084
8220
  }
8085
8221
 
8222
+ /**
8223
+ * The vocabulary the cropper's geometry is written in.
8224
+ *
8225
+ * ⛔ THREE COORDINATE SPACES, AND CONFUSING TWO OF THEM IS THE WHOLE BUG CLASS
8226
+ * THIS FILE EXISTS TO NAME. Every rect and point below belongs to exactly one
8227
+ * of them, and a function that crosses between them says so in its name.
8228
+ *
8229
+ * SOURCE — the original image's own pixels, before any rotation. The only
8230
+ * space a crop can finally be expressed in, because it is the only
8231
+ * one the decoder understands.
8232
+ * ORIENTED — source after a 90°-step rotation. Same pixels, and for 90/270 the
8233
+ * width and height have SWAPPED. Still image pixels, not screen.
8234
+ * VIEWPORT — the on-screen stage, in layout units (CSS px on web, DIP on
8235
+ * native). This is where the crop window and the pointer live.
8236
+ *
8237
+ * ⚠️ VIEWPORT UNITS ARE NOT DEVICE PIXELS and this module never converts to
8238
+ * them. A retina screen draws the same viewport rect over twice as many device
8239
+ * pixels; that is the renderer's business. Mixing the two is how a crop comes
8240
+ * out half size on one device and right on another.
8241
+ */
8242
+ /** Width and height, in whichever space the function taking it names. */
8243
+ export interface ICropSize {
8244
+ width: number;
8245
+ height: number;
8246
+ }
8247
+ /** A point, in whichever space the function taking it names. */
8248
+ export interface ICropPoint {
8249
+ x: number;
8250
+ y: number;
8251
+ }
8252
+ /** An axis-aligned rect: `x`/`y` are its TOP-LEFT corner. */
8253
+ export interface ICropRect extends ICropSize, ICropPoint {
8254
+ }
8255
+ /**
8256
+ * Display rotation in 90° steps, CLOCKWISE.
8257
+ *
8258
+ * ⚠️ CLOCKWISE IS A CHOICE, AND IT IS THE ONE THE "ROTATE" BUTTON MAKES. Both
8259
+ * platform encoders are told the same number, so flipping this convention means
8260
+ * flipping it in three places at once.
8261
+ */
8262
+ export type CropRotation = 0 | 90 | 180 | 270;
8263
+ /**
8264
+ * Where the oriented image sits on the stage: scaled by `scale`, then its
8265
+ * top-left placed at (`x`, `y`) in VIEWPORT space.
8266
+ *
8267
+ * ⚠️ `x`/`y` ARE THE IMAGE'S TOP-LEFT, NOT ITS CENTRE. A centre-based transform
8268
+ * is equally valid and reads better for pinch gestures — it is not what this
8269
+ * module uses, and the two differ by half a scaled image.
8270
+ */
8271
+ export interface ICropTransform {
8272
+ scale: number;
8273
+ x: number;
8274
+ y: number;
8275
+ }
8276
+ /** The eight resize grips, named for the compass edge they sit on. */
8277
+ export type CropHandle = 'n' | 's' | 'e' | 'w' | 'ne' | 'nw' | 'se' | 'sw';
8278
+ /** `[width, height]` — e.g. `[1, 1]` for a square, `[16, 9]` for a cover. */
8279
+ export type CropAspect = readonly [number, number];
8280
+ /** Options for {@link resizeRect}. */
8281
+ export interface ICropResizeOptions {
8282
+ /** Locked width ÷ height. Omit for a free resize. */
8283
+ ratio?: number;
8284
+ /** Floor on the result, in viewport units. */
8285
+ min?: ICropSize;
8286
+ /** The result may not leave this rect — except where `min` forbids it. */
8287
+ bounds?: ICropRect;
8288
+ }
8289
+
8290
+ /** What the crop window is cut to. */
8291
+ export type CropMaskShape = "circle" | "rectangle";
8292
+ /** Encoders both platforms can actually produce. */
8293
+ export type CropOutputFormat = "jpeg" | "png" | "webp";
8294
+ /**
8295
+ * What the cropper is asked to produce.
8296
+ *
8297
+ * ⚠️ EVERY FIELD IS A CEILING, NOT A TARGET. A 200×200 source asked for at most
8298
+ * 1024×1024 comes back 200×200 — upscaling invents detail and charges bytes for
8299
+ * it. Likewise `maxBytes` is "no larger than", reached by lowering quality and
8300
+ * then, only if that is not enough, by scaling down.
8301
+ */
8302
+ export interface ICropOutput {
8303
+ /** Ceiling on the result's width, in image pixels. */
8304
+ maxWidth?: number;
8305
+ /** Ceiling on the result's height, in image pixels. */
8306
+ maxHeight?: number;
8307
+ /**
8308
+ * Ceiling on the encoded file size, in BYTES. Defaults to 500 KB.
8309
+ *
8310
+ * ⚠️ `png` IS LOSSLESS, SO QUALITY CANNOT BUY BYTES BACK. A PNG over the
8311
+ * ceiling can only be made smaller by shrinking its dimensions, and a PNG
8312
+ * of a photograph may not reach a tight ceiling at any sane size. Use
8313
+ * `jpeg` or `webp` when `maxBytes` matters.
8314
+ */
8315
+ maxBytes?: number;
8316
+ /**
8317
+ * Encoder for the result. Defaults to `jpeg`.
8318
+ *
8319
+ * ⛔ THE OUTPUT FORMAT NEVER ECHOES THE INPUT'S. A HEIC chosen on an iPhone
8320
+ * is re-encoded to this format, which is how a photo that no browser would
8321
+ * display becomes one that every browser displays. The input's format is
8322
+ * never carried through.
8323
+ */
8324
+ format?: CropOutputFormat;
8325
+ }
8326
+ /** What the cropper hands back. */
8327
+ export interface ICropResult {
8328
+ /**
8329
+ * The cropped image. A `blob:` object URL on web, a `file://` path on
8330
+ * native.
8331
+ *
8332
+ * ⛔ ON WEB THIS IS AN OBJECT URL THE CALLER NOW OWNS. It holds its blob in
8333
+ * memory until someone calls `URL.revokeObjectURL` on it; dropping the
8334
+ * reference does not free it. Revoke it once uploaded or once a later crop
8335
+ * replaces it.
8336
+ */
8337
+ uri: string;
8338
+ /** The result's real pixel width, after every ceiling was applied. */
8339
+ width: number;
8340
+ /** The result's real pixel height. */
8341
+ height: number;
8342
+ /** The encoded size in bytes — what `maxBytes` was measured against. */
8343
+ size: number;
8344
+ /** The encoder that actually produced it. */
8345
+ format: CropOutputFormat;
8346
+ /** The blob itself, on web, for callers that would rather not re-fetch the URL. */
8347
+ blob?: Blob;
8348
+ }
8349
+ /** Why a crop could not be produced. */
8350
+ export type CropErrorReason =
8351
+ /** The source could not be decoded — most often a HEIC in a browser that has no decoder. */
8352
+ "decode-failed"
8353
+ /** The encoder could not reach `maxBytes` even at its smallest. */
8354
+ | "too-large"
8355
+ /** The platform refused the encode. */
8356
+ | "encode-failed";
8357
+ export interface ICropError {
8358
+ reason: CropErrorReason;
8359
+ /** A sentence fit to show a user. */
8360
+ message: string;
8361
+ }
8362
+ export interface IImageCropperProps {
8363
+ /**
8364
+ * The image to crop: a URL/URI, a `File` picked on web, or — on native — a
8365
+ * bundled asset straight from `require('./photo.png')`.
8366
+ *
8367
+ * ⛔ PREFER THE `require()` FORM ON NATIVE. React Native hands back an
8368
+ * asset id whose dimensions are already known, so the cropper reads them
8369
+ * synchronously from the asset registry. A bundled asset passed as a URI
8370
+ * STRING instead forces an `Image.getSize` round-trip to whatever host that
8371
+ * URI names — in development that is the Metro dev server, which a physical
8372
+ * phone frequently cannot reach, and in a release build it is not fetchable
8373
+ * that way at all. Both failures surface as
8374
+ * `onError({reason: 'decode-failed'})`, which reads like a corrupt image
8375
+ * and is not one.
8376
+ *
8377
+ * ⚠️ THE `require()` FORM IS NATIVE-ONLY and is reported, not ignored, on
8378
+ * web: a bundler there resolves `require` of an image to a URL string or a
8379
+ * module object, never to React Native's numeric asset id.
8380
+ *
8381
+ * ⚠️ A HEIC `File` IS ACCEPTED AND MAY STILL FAIL TO DECODE ON WEB. Safari
8382
+ * decodes HEIC; Chrome and Firefox do not, and no amount of re-encoding
8383
+ * helps because the pixels were never read. That case arrives as
8384
+ * `onError({reason: 'decode-failed'})` with a sentence saying so, rather
8385
+ * than as a blank stage. Native decodes HEIC on both platforms.
8386
+ */
8387
+ source?: string | File | number | null;
8388
+ /** Locked crop ratio as `[width, height]`. Defaults to `[1, 1]`. */
8389
+ aspect?: CropAspect;
8390
+ /** Circle for avatars, rectangle for covers. Defaults to `rectangle`. */
8391
+ maskShape?: CropMaskShape;
8392
+ /** Ceilings on the result. See {@link ICropOutput}. */
8393
+ output?: ICropOutput;
8394
+ /** The crop the user accepted. */
8395
+ onCrop?: (result: ICropResult) => void;
8396
+ /** The user backed out. */
8397
+ onCancel?: () => void;
8398
+ /** Something could not be done, with a reason fit to show. */
8399
+ onError?: (error: ICropError) => void;
8400
+ /**
8401
+ * A finger is on the stage (`true`), or has left it (`false`).
8402
+ *
8403
+ * ⛔ IT EXISTS FOR ONE JOB: TURNING OFF AN ENCLOSING `ScrollView` ON NATIVE.
8404
+ * A cropper lives inside a scrollable form, and iOS gives a vertical drag
8405
+ * to the scroll view before anything in the content can ask for it —
8406
+ * `UIScrollView` delays content touches, decides the gesture is a scroll,
8407
+ * and then never delivers it. Nothing rendered INSIDE that scroll view can
8408
+ * outvote it, so the owner of the scroll view has to stand down:
8409
+ *
8410
+ * ```tsx
8411
+ * const [framing, setFraming] = useState(false);
8412
+ * <ScrollView scrollEnabled={!framing}>
8413
+ * <ImageCropper onInteractionChange={setFraming} ... />
8414
+ * </ScrollView>
8415
+ * ```
8416
+ *
8417
+ * ⚠️ IT IS NOT NEEDED ON WEB, and is harmless there — the web stage stops
8418
+ * page scrolling itself with a non-passive wheel listener and pointer
8419
+ * capture, neither of which native has an equivalent for.
8420
+ *
8421
+ * ⚠️ AND IT IS A BELT, NOT THE ONLY BRACES. The native cropper already
8422
+ * claims the touch in a way that blocks the scroll view wherever the touch
8423
+ * reaches it at all; this is the deterministic fallback for the case where
8424
+ * it does not.
8425
+ */
8426
+ onInteractionChange?: (active: boolean) => void;
8427
+ /** Shown in the header. Omit for no header. */
8428
+ title?: ReactNode;
8429
+ /** Hide the live preview of the result. */
8430
+ hidePreview?: boolean;
8431
+ /** Hide the rule-of-thirds guides. */
8432
+ hideGrid?: boolean;
8433
+ /**
8434
+ * Let the crop window be resized by its eight grips.
8435
+ *
8436
+ * ⚠️ WEB ONLY, AND ACCEPTED-AND-INERT ON NATIVE, the same contract `popup`
8437
+ * carries on the selects: a shared config stays valid on both surfaces
8438
+ * rather than making a consumer branch on platform. A finger has no hover
8439
+ * and a grip small enough to look right is too small to hit, so native
8440
+ * frames by pinch and pan against a fixed window instead.
8441
+ */
8442
+ resizable?: boolean;
8443
+ /** Zoom ceiling, as a multiple of the scale that just covers the window. Defaults to 8. */
8444
+ maxZoom?: number;
8445
+ /** Labels, for translation. */
8446
+ labels?: {
8447
+ cancel?: string;
8448
+ save?: string;
8449
+ rotate?: string;
8450
+ reset?: string;
8451
+ zoom?: string;
8452
+ preview?: string;
8453
+ dropZone?: string;
8454
+ processing?: string;
8455
+ };
8456
+ /** Stable test id, forwarded to the stage. */
8457
+ testID?: string;
8458
+ /** Per-instance slot overrides, merged over the theme. */
8459
+ slots?: Partial<IImageCropperSlots>;
8460
+ /** Style on the outer shell. */
8461
+ style?: IStyleClasses;
8462
+ className?: string;
8463
+ }
8464
+
8086
8465
  export interface ILoaderProps<TColor = string, TStyle = unknown, TLocal = Record<string, unknown>> {
8087
8466
  localProps?: TLocal;
8088
8467
  animating?: boolean;
@@ -8654,6 +9033,78 @@ declare function Avatar(props: IAvatarProps): React__default.JSX.Element;
8654
9033
  */
8655
9034
  declare function AvatarStack(props: IAvatarStackProps): React__default.JSX.Element;
8656
9035
 
9036
+ declare function ImageCropper(rawProps: IImageCropperProps): React__default.JSX.Element;
9037
+
9038
+ /**
9039
+ * Where a host app plugs in the one thing the NATIVE cropper cannot do itself.
9040
+ *
9041
+ * ⛔ THIS FILE HAS NO `.native` SUFFIX ON PURPOSE, AND THAT IS NOT COSMETIC.
9042
+ * `rollup.web.config.mjs` treats any path containing `.native.` as EXTERNAL —
9043
+ * so a registry living in `encode.native.ts` and re-exported from the shared
9044
+ * `components` barrel would compile, and then emit a bare import of a native
9045
+ * file into the WEB bundle for a consumer's bundler to fail on. Found by
9046
+ * reading that config rather than by shipping it. The registry itself imports
9047
+ * nothing platform-specific, so a neutral name is also the honest one.
9048
+ *
9049
+ * ⚠️ THE WEB CROPPER NEVER CONSULTS THIS. It has a canvas and needs no
9050
+ * injection. A cross-platform app can therefore call `setCropEncoder` once at
9051
+ * start-up unconditionally: on web it is a harmless no-op, on a device it is
9052
+ * what makes Save work.
9053
+ */
9054
+ export interface ICropEncoder {
9055
+ /**
9056
+ * Produce one encoded file.
9057
+ *
9058
+ * @param uri the source image
9059
+ * @param sourceRect the region to keep, in SOURCE pixels, rotation undone
9060
+ * @param sourceSize the source's full pixel size
9061
+ * @param rotation degrees clockwise to apply when saving
9062
+ * @param size the output's pixel size, already decided by the search
9063
+ * @param quality 0–1; ignored by lossless formats
9064
+ * @param format the encoder to use
9065
+ * @returns the written file's uri, its size in bytes, and — when the
9066
+ * implementation knows them — the dimensions it actually produced
9067
+ *
9068
+ * ⚠️ `width`/`height` ARE REPORTED BECAUSE THE REQUEST IS NOT ALWAYS THE
9069
+ * RESULT. The bare-React-Native encoder asks its resizer for a square
9070
+ * ceiling with `contain` (the only orientation-safe way to drive it), so
9071
+ * the output can land a pixel or two off the requested size. Reporting the
9072
+ * number back beats the caller assuming the one it asked for.
9073
+ */
9074
+ (args: {
9075
+ uri: string;
9076
+ sourceRect: ICropRect;
9077
+ /**
9078
+ * The source's full size.
9079
+ *
9080
+ * ⚠️ THE BUNDLED ENCODER NO LONGER NEEDS THIS, and the field stays
9081
+ * anyway. It was added when that encoder rotated the file BEFORE
9082
+ * cropping it and therefore had to re-express the rect into the rotated
9083
+ * frame. Reordering the chain to crop first removed that mapping — but
9084
+ * the contract is public, any implementation that rotates first still
9085
+ * needs the dimensions, and they are free to carry. A canvas encoder
9086
+ * ignores the field entirely.
9087
+ */
9088
+ sourceSize: ICropSize;
9089
+ rotation: number;
9090
+ size: ICropSize;
9091
+ quality: number;
9092
+ format: CropOutputFormat;
9093
+ }): Promise<{
9094
+ uri: string;
9095
+ bytes: number;
9096
+ width?: number;
9097
+ height?: number;
9098
+ }>;
9099
+ }
9100
+ /**
9101
+ * Register the native encoder. Call once, at app start, before the cropper is
9102
+ * used. Passing `null` unregisters it, which is what a test wants.
9103
+ */
9104
+ declare const setCropEncoder: (next: ICropEncoder | null) => void;
9105
+ /** Whether a host app has wired one up. The native UI reads this to disable Save. */
9106
+ declare const hasCropEncoder: () => boolean;
9107
+
8657
9108
  /**
8658
9109
  * Stepper — horizontal progress indicator for multi-step flows.
8659
9110
  *
@@ -9281,6 +9732,13 @@ declare const useKitsConcerto: () => IMainContextValues<any, React$1.JSX.Element
9281
9732
 
9282
9733
  export interface IElementConfig {
9283
9734
  style: Record<string, any>;
9735
+ /**
9736
+ * Extra attributes for this slot's element — `className`, `data-*`,
9737
+ * `aria-*`, anything the platform element accepts. Merged across the
9738
+ * whole chain (FormElement < baseGroup < component < instance slots),
9739
+ * with `className` CONCATENATED rather than replaced.
9740
+ */
9741
+ props: Record<string, any>;
9284
9742
  important?: boolean | string[];
9285
9743
  pseudo?: Record<string, Record<string, any>>;
9286
9744
  }
@@ -9299,7 +9757,20 @@ export interface UseComponentDefaultsResult<T> {
9299
9757
  */
9300
9758
  elementStyles: Record<string, Record<string, any>>;
9301
9759
  /**
9302
- * Full slot configs including `important` and `pseudo` fields.
9760
+ * Per-element extra attributes. Each key is a slot name, value is the
9761
+ * merged `props` for that slot (`className`, `data-*`, `aria-*`, …).
9762
+ *
9763
+ * ⛔ EVERY SLOT, NOT JUST `root` — THAT WAS THE BUG. `IElementSlotConfig`
9764
+ * has advertised `props` on every slot since the slot system landed, but
9765
+ * only `root.props` was ever read (it is folded into `mergedProps`).
9766
+ * Anything a consumer put on another slot — the class a portal needs on a
9767
+ * tags field's outer box to make it match a text input — was parsed,
9768
+ * merged, and then thrown away with no warning and no type error.
9769
+ * Components apply `elementProps[slot]` to the matching element.
9770
+ */
9771
+ elementProps: Record<string, Record<string, any>>;
9772
+ /**
9773
+ * Full slot configs including `props`, `important` and `pseudo` fields.
9303
9774
  * Use this instead of `elementStyles` when you need those fields.
9304
9775
  */
9305
9776
  elementConfigs: Record<string, IElementConfig>;
@@ -9321,8 +9792,15 @@ export interface UseComponentDefaultsResult<T> {
9321
9792
  * on the component config. Each slot accepts `{ props?, style? }`.
9322
9793
  *
9323
9794
  * The `root` slot's `props` are merged into `mergedProps` alongside
9324
- * user props (user always wins). The `root` slot's `style` is returned
9325
- * as both `themeStyle` (backwards compat) and `elementStyles.root`.
9795
+ * user props (user always wins, except `className`, which concatenates).
9796
+ * The `root` slot's `style` is returned as both `themeStyle` (backwards
9797
+ * compat) and `elementStyles.root`.
9798
+ *
9799
+ * EVERY OTHER slot's `props` come back on `elementProps[slot]` — the
9800
+ * component is responsible for spreading them onto the element that slot
9801
+ * names. Before that existed, `props` on a non-root slot was silently
9802
+ * discarded, which is how a consumer's class on a tags field's outer box
9803
+ * disappeared without a single error.
9326
9804
  *
9327
9805
  * Supports base-group inheritance: e.g. `useComponentDefaults('InputText', rawProps, 'Input')`
9328
9806
  * merges FormElement first, then Input base, then InputText overrides,
@@ -15182,5 +15660,5 @@ declare const localeFiles: {
15182
15660
  };
15183
15661
  };
15184
15662
 
15185
- export { ALPHA_COLOR_VARS, ALPHA_STEPS, ALPHA_TOKEN_NAMES, AccentEdge, CustomAccordion as Accordion, ActionCard, Alert, AlertDescription, AlertIcon, AlertTitle, KitsAnimatePresence as AnimatePresence, AnyFile, Avatar, AvatarStack, Badge, Banner, BottomTabBar, Box, BreadCrumb, BreadcrumbProvider, Button, Card, Carousel, Center, ChatBubble, Chip, CircularProgress, Collapse, CommandPalette, Container, CustomPopover, DEFAULT_NATIVE_SHADOWS, DataView, DataViewContext, DateSeparator, Delta, DetailList as DetailsList, Divider, Donut, DotGrid, EDateFormat, EKeyFilter, Editable, EmptyState, FIELD_LABEL_MARGIN, FIELD_MARGIN, Flex, Form, FormSelect, GUTTER, Gallery, Gauge, Form as GoForm, Datatable as GoTable, KitsGrid as Grid, KitsGridItem as GridItem, GroupedBars, HELPER_TEXT_MARGIN, HStack, Heading, Icon, IconMap, Image, KitsInputSwitch as InputSwitch, KeyboardNavContext, KitsAutoComplete, KitsBarChart, KitsCascadeSelect, KitsCheckbox as KitsCheckboxes, KitsConfirm, KitsConfirmPopup, KitsContainer, KitsInputCalendar as KitsDatepicker, KitsDialogControlled as KitsDialog, KitsDropdown, FilePicker as KitsFilePicker, KitsInputColorPicker, KitsInputLocation, KitsInputMask, KitsInputNumber, KitsInputPassword, KitsInputText, KitsInputTextarea, KitsLineChart, KitsListBox, KitsMultiSelect, KitsPhoneComponent, KitsRadar, KitsRadio as KitsRadios, RadiusPicker as KitsRadiusPicker, KitsSliders, KitsThemeProvider, KitsToast, KitsTreeSelect, Label, Legend, Link, List, ListItem, Loader, LocaleContext, LocaleContextProvider, MainContext, MainContextProvider, MapTile, MessageComposer, MessageReceipt, MetricCard, KitsMultiSelect as MultiSelect, PermissionsProvider, PersonCard, ProgressBar, RadiusPicker, RankedList, ReducedMotionProvider, Rise, SHADOW_PRESET_KEYS, SPACER, KitsScrollView as ScrollView, SegmentedControl, FormSelect as Select, SelectButton, Skeleton$1 as Skeleton, SkeletonRows, Skeleton as SkeletonText, Sparkline, StackedBars, StatCard, StatGroup, StatePill, StatusCard, Stepper, Striped, Svg, TableContext, Tabs, Text, ThemeContextProvider, Timeline, Tip, Tooltip, Translate, KitsTreeSelect as TreeSelect, TreeView, TriStateCheckbox, TypingIndicator, VStack, Wash, WidgetPanel, borderProperties, breakpoints, capitalizeFirstLetter, checkExtAgainstAccepted, checkNameDuplication, colorWithAlpha, dateTimeFormat, deepMerge, defaultSeverityTheme, defaultTheme, downloadCanvas, dynamicList, expandShadowNative, extendTheme, fileTypeIcon, fileValidation, filesExt, filesMemes, filesTypes, flattenSlotStyles, fontSizeMapping, formFileValidation, formatNumber, getActiveNativeShadows, getCombinedChildIds, getCustomDateTime, getDateElements, getDefaultValues, getMeme, getParams, getPropertyByPath, getType, getTypes, getURLParams, imagesExt, imagesMemes, imagesTypes, isAlphaToken, isNumber, isSemanticToken, isShadowPreset, isThemeToken, isToday, isValidURL, kitsMotion, listingProperties, localeFiles, allProperties as mapCssProperties, mergeRefs, nonPxProperties, propertiesWithoutCssEquivalent, pxProperties, resolveStyleRecord, resolveTokenValue, schemaBuilder, setActiveNativeShadows, shadowNative, shadowWeb, sizeMapping, sizingProperties, timeAgo, timeSince, toMemes, useAllSeverityColors, useBreadcrumb, useBreadcrumbTrail, useComponentDefaults, useCountUp, useDataView, useDialog, useDisclosure, useEnter, useFieldLogic, useFocusStyles, useFormFieldKeyboardNav, useFormManager, useKeyboardNav, useKeyboardNavProvider, useKitsColorScheme, useKitsConcerto, useKitsTheme, useLanguage, useMeasuredWidth, useNativeColorMap, usePermissions, usePopup, useReducedMotion, useResolvedElementStyles, useResolvedStyle, useRtlLineHeight, useScrollState, useSelectionController, useSeverityColors, useTable, useTheme, useThemedFont, useToast };
15186
- export type { AlignmentsValues, AllSlotKeys, AnimationsValues, AvatarShape, AvatarSize, AvatarStatus, BannerAction, BannerStatus, BaseFieldProps, Booleanish, Breakpoint, CallbackProps, ChatBubbleTone, ChatBubbleVariant, ChipSeverity, ChipSize, ColorMode, ColorScale, ColorValue, Colors, ColorsType, ComponentSize, CustomSubmitButtonProps, DataTableFilterMeta, DataTableFilterMetaData, DataTableOperatorFilterMetaData, DataTableSelectionSingleChangeEvent, DataTableSortMeta, DeepPartial, DetailItemInputType, DynamicValue, ElementProps, EnteringAnimation, ExitingAnimation, ExpandedKeys, FetchError, FetchSuccess, FetchTableDataRes, FetchTablePaginationData, FieldWrapperProps, File$1 as File, FileUploaderTemplate, FileUploaderTemplateParams, FlexAlignmentsValues, FlexValues, FormBooleanEvent, FormBooleanTarget, FormEvent, FormTarget, GroupFieldConfigs, HighSizingValue, IAccentEdgeProps, IAccordionElementSlots, IAccordionProps, IActionCardProps, IAddressComponentValue, IAddressExperianFormat, IAddressFormat, IAddressFormatResults, IAddressSearchResults, IAlertComponent, IAlertProps, IAlignment, IAnimation, IAutoCompleteCore, IAutoCompleteElement, IAvatarElementSlots, IAvatarProps, IAvatarStackElementSlots, IAvatarStackProps, IBadgeProps, IBannerProps, IBarChartProps, IBaseValidation, IBasicSectionProps, IBg, IBodyTemplate, IBodyTemplateIcon, IBorder, IBottomTabBarElementSlots, IBottomTabBarProps, IBoxComponent, IBreadcrumbCrumb, IBreadcrumbProps, IBuilderAddressField, IBuilderCheckboxField, IBuilderContainerField, IBuilderDateField, IBuilderField, IBuilderFieldBase, IBuilderFieldExport, IBuilderFileField, IBuilderGroupField, IBuilderMultiselectField, IBuilderNumberField, IBuilderPhoneField, IBuilderRadiosField, IBuilderRadiusPickerField, IBuilderSectionField, IBuilderSelectField, IBuilderSwitchField, IBuilderTagsField, IBuilderTextField, IBuilderTextareaField, IButton, IButtonElementSlots, IButtonParams, IButtonProps, IButtonState, IButtonsFilter, ICanvasProps, ICardComponent, ICardElementSlots, ICarouselElementSlots, ICarouselProps, ICascadeSelect, ICascadeSelectCore, IChatBubbleElementSlots, IChatBubbleProps, ICheckbox, ICheckboxFilter, ICheckboxSlots, IChildren, IChildrenParams, IChipProps, ICircularProgressProps, ICollapseProps, IColorPicker, IColumn, IColumnBase, ICombined, ICommandPaletteGroup, ICommandPaletteItem, ICommandPaletteProps, IComponentThemeConfig, IConditionGroupProps, IConditionRowProps, IConditionRule, IConditionsSectionProps, IConfirmDialogProps, IConfirmPopupProps, IContainer, IContainerCardProps, IContainerProps, IContextValues, ICountrySearchResults, ICssStyling, IDVButtonsFilter, IDVCheckboxFilter, IDVDateFilter, IDVDropdownFilter, IDVFilters, IDVMessages, IDVMultiselectFilter, IDVNumberFilter, IDVPaginationRequest, IDVPaginationResponse, IDVPaginationState, IDVPhoneFilter, IDVRangeFilter, IDVTextFilter, IDVTriStateFilter, IDataTableContextValues, IDataTableProps, IDataViewContextValues, IDataViewProps, IDataViewRefValues, IDatatableRefValues, IDate, IDateFilter, IDateProps, IDateSeparatorElementSlots, IDateSeparatorProps, IDateValidation, IDatepickerSlots, IDeltaProps, IDetailItem, IDetailListProps, IDialogButton, IDialogProps, IDialogRef, IDialogState, IDisplay, IDividerComponent, IDonutProps, IDonutSegment, IDotGridProps, IDoughnutChartProps, IDropdownCore, IDropdownFilter, IDropdownSelect, IEditableProps, IEditors, IEffects, IElementBase, IElementSlotConfig, IElementStyle, IEmail, IEmailSearchResults, IEmptyStateElementSlots, IEmptyStateProps, IFieldCardProps, IFieldCondition, IFieldPreviewProps, IFile, IFileUploader, IFileUploaderElement, IFileUploaderTypes, IFileValidation, IFilesExtTypeKeys, IFilters, IFlexAlignment, IFlexComponent, IFormAddon, IFormBuilderInternalState, IFormBuilderMeta, IFormBuilderPayload, IFormBuilderProps, IFormComponent, IFormElement, IFormElementBaseSlots, IFormElementSlots, IFormGrid, IFormListsElements, IFormSelect, IFormSelectElements, IFormSingleElement, IGalleryElementSlots, IGalleryItem, IGalleryProps, IGaugeProps, IGrid, IGridCellStyle, IGridComponent, IGridItem, IGridItemComponent, IGroup, IGroupCardProps, IGroupElementSlots, IGroupSettings, IGroupedBarsDatum, IGroupedBarsProps, IHeaderElementSlots, IHeadingComponent, IIconProps, IImageComponent, IImagesExtTypeKeys, IInteractivity, IKeyedColumn, IKitsAnimation, IKitsBarChartDatum, IKitsBarChartProps, IKitsCheckboxProps, IKitsComponentDefaults, IKitsContainer, IKitsDialogControlled, IKitsInputCalendar, IKitsInputColorPicker, IKitsInputLocation, IKitsInputMask, IKitsInputNumber, IKitsInputPassword, IKitsInputRating, IKitsInputSwitch, IKitsInputText, IKitsInputTextarea, IKitsLineChartProps, IKitsLineChartSeries, IKitsPhoneInput, IKitsRadioProps, IKitsTheme, IKitsThemeColors, IKitsThemeConfig, IKitsThemeContextValues, IKitsThemeFontSizes, IKitsThemeFontWeights, IKitsThemeFonts, IKitsThemeLineHeights, IKitsThemeRadii, IKitsThemeShadows, IKitsThemeSpacing, IKitsToastRef, ILabelElement, ILabelProps, ILanguage, ILayout, ILegendItem, ILegendProps, ILineChartProps, ILinkComponent, ILinkOverrides, IList, IListBoxCore, IListBoxElement, IListBoxSelect, IListItem, IListing, ILoaderProps, ILoadingIndicatorContext, ILocaleContextProps, ILocaleContextValues, ILocation, ILocationDetailsResponse, ILocationResponse, IMainContextProps, IMainContextValues, IMapTilePoint, IMapTileProps, IMemes, IMenuItem, IMessageComposerElementSlots, IMessageComposerProps, IMessageReceiptElementSlots, IMessageReceiptProps, IMessages, IMetricCardProps, IMinusButton, IModalComponent, IModalFormProps, IMultiSelect, IMultiSelectCore, IMultiSelectSlots, IMultiselect, IMultiselectFilter, INativeShadow, INonCrossPlatformTypes, INumberFilter, INumberInput, INumberProps, INumberValidation, IObjectGroup, IOneOfTypes, IOptionItem, IOptionsEditorProps, IOptionsSource, IPageISection, IPaginationRequest, IPaginationResponse, IPaginatorLabels, IPaletteItemProps, IPaletteProps, IPanelCustomSlot, IPassword, IPasswordProps, IPersonCardProps, IPhone, IPhoneFilter, IPhoneObjectValue, IPhoneValidationResults, IPhoneValue, IPieChartProps, IPlusButton, IPolarAreaChartProps, IPopoverProps, IProgressBarElementSlots, IProgressBarProps, IPropertiesPanelProps, IRTLDetection, IRadarChartProps, IRadarProps, IRadarSeries, IRadioCheckboxListItem, IRadioGroup, IRadioSlots, IRadiusPickerEvents, IRadiusPickerField, IRadiusPickerI18n, IRadiusPickerProps, IRangeFilter, IRankedListProps, IRankedListRow, IRef, IRepeatableSettings, IResponsiveElement, IRiseProps, ISVGComponent, IScrollViewComponent, ISegmentedControlOption, ISegmentedControlProps, ISelect, ISelectBase, ISelectCore, ISelectElement, ISelectSlots, ISelectType, ISelectedFile, ISelectedFileType, ISelectionValidation, ISeverityColorSlots, ISeverityThemeMap, IShadowDefinition, IShadowValue, ISidebarElementSlots, ISizing, ISkeleton, ISkeletonRowsProps, ISkeletonText, ISliderProps, ISpacing, ISparklineProps, IStackProps, IStackedBarsDatum, IStackedBarsProps, IStatCardElementSlots, IStatCardProps, IStatGroupElementSlots, IStatGroupProps, IStatePillProps, IStatisticsProps, IStats, IStatusCardProps, IStepperElementSlots, IStepperProps, IStripedProps, IStyleClasses, ISwitch, ISwitchSlots, ITabBarItem, ITabItem, ITableElementSlots, ITableFlatConfig, ITabsElementSlots, ITabsProps, ITags, IText, ITextComponent, ITextFieldProps, ITextFilter, ITextInput, ITextInputProps, ITextInputSlots, ITextValidation, ITextarea, IThemeContextProps, IThemeContextValues, ITimelineElementSlots, ITimelineItem, ITimelineProps, ITipProps, IToastAction, IToastFunction, IToastOptions, IToastParams, IToolbarProps, ITransforms, ITransition, ITranslatableInputProps, ITranslatableText, ITranslateComponent, ITreeItem, ITreeSelect, ITreeSelectCore, ITreeSelectElement, ITreeSelectNode, ITreeViewProps, ITriStateFilter, ITypingIndicatorElementSlots, ITypingIndicatorProps, IUnkeyedColumn, IUseCountUpOptions, IUseFormReturn, IUserAvatar, IValidationSectionProps, IWashProps, IWidgetBarIncomingProp, IWidgetChartContextProps, IWidgetChartProp, IWidgetData, IWidgetDoughnutIncomingProp, IWidgetLineIncomingProp, IWidgetPanelProps, IWidgetPieIncomingProp, IWidgetPolarAreaIncomingProp, IWidgetRadarIncomingProp, IconName, IconType, InputTextFieldProps, KitsBreakpoint, KitsConditionalObject, KitsDevice, KitsMotion, KitsOrientation, KitsPlatform, KitsResponsiveObject, KitsResponsiveValue, KitsThemeOverride, LabelVariant, LatLng, LoadMode, LoadingIndicatorRenderer, LogicFunction, MapInteraction, MeasurementValues, MessageReceiptState, Nullable, Numbering0_12, Numbering0_32, Numberish, OnCenterChange, OnLocationError, OnLocationFound, OnRadiusChange, OnRadiusValueChange, OnSubmitHandler, OnUnitChange, Orientation, PaginationState, PaginatorPageChangeEvent$1 as PaginatorPageChangeEvent, Permissions, PlatformKey, RadiusPickerDisplay, RadiusPickerLayout, RadiusPickerSize, RadiusUnit, RadiusValue, RenderLocationButtonProps, RenderMapProps, RenderSearchBoxProps, SelectFieldProps, SemanticColorTokens, ServerMethod, ServerResponse, ServerSideProps, SetManyOpts, Severity, Shades, ShadowPreset, Shapes, SidesValues, SizingNumbering, SizingValue, StatePillState, StepperVariant, TAcceptedFileType, TBuilderFieldType, TCheckboxRadioMode, TCheckboxRadioSize, TConditionAction, TConditionMatch, TConditionOperator, TDateBoundary, TDynamicFlag, TExternalFilterLabelMode, TFiltersLayout, TIsoFormat, TItemsPerRow, TKeyFilter, TLocationProvider, TPaginatorAlign, TextLabels, TextProps, ThemedFontKind, TimelineItemStatus, Timeout, TimingNumbering, ToastPosition, ToastSeverity, ToastSize, TooltipDataAttributes, TooltipProps, TreeChangeProps, TreeCheckboxSelectionKeyType, TreeCheckboxSelectionKeys, TreeNode, TreeNodeClickEvent, TreeNodeTemplateOptions, TreeProps, TreeRef, TreeSelectionEvent, Types, UseComponentDefaultsResult, UseDisclosureReturnType, UseFieldLogicElementProps, UseFieldLogicProps, UseFieldLogicReturn, UseFormManagerEvents, UseFormManagerReturn, UseToastApi, ValidationProps, children, clearFunction, downloadableFileResponse, settings1, settings2 };
15663
+ export { ALPHA_COLOR_VARS, ALPHA_STEPS, ALPHA_TOKEN_NAMES, AccentEdge, CustomAccordion as Accordion, ActionCard, Alert, AlertDescription, AlertIcon, AlertTitle, KitsAnimatePresence as AnimatePresence, AnyFile, Avatar, AvatarStack, Badge, Banner, BottomTabBar, Box, BreadCrumb, BreadcrumbProvider, Button, Card, Carousel, Center, ChatBubble, Chip, CircularProgress, Collapse, CommandPalette, Container, CustomPopover, DEFAULT_NATIVE_SHADOWS, DataView, DataViewContext, DateSeparator, Delta, DetailList as DetailsList, Divider, Donut, DotGrid, EDateFormat, EKeyFilter, Editable, EmptyState, FIELD_LABEL_MARGIN, FIELD_MARGIN, Flex, Form, FormSelect, GUTTER, Gallery, Gauge, Form as GoForm, Datatable as GoTable, KitsGrid as Grid, KitsGridItem as GridItem, GroupedBars, HELPER_TEXT_MARGIN, HStack, Heading, Icon, IconMap, Image, ImageCropper, KitsInputSwitch as InputSwitch, KeyboardNavContext, KitsAutoComplete, KitsBarChart, KitsCascadeSelect, KitsCheckbox as KitsCheckboxes, KitsConfirm, KitsConfirmPopup, KitsContainer, KitsInputCalendar as KitsDatepicker, KitsDialogControlled as KitsDialog, KitsDropdown, FilePicker as KitsFilePicker, KitsInputColorPicker, KitsInputLocation, KitsInputMask, KitsInputNumber, KitsInputPassword, KitsInputText, KitsInputTextarea, KitsLineChart, KitsListBox, KitsMultiSelect, KitsPhoneComponent, KitsRadar, KitsRadio as KitsRadios, RadiusPicker as KitsRadiusPicker, KitsSliders, KitsThemeProvider, KitsToast, KitsTreeSelect, Label, Legend, Link, List, ListItem, Loader, LocaleContext, LocaleContextProvider, MainContext, MainContextProvider, MapTile, MessageComposer, MessageReceipt, MetricCard, KitsMultiSelect as MultiSelect, PermissionsProvider, PersonCard, ProgressBar, RadiusPicker, RankedList, ReducedMotionProvider, Rise, SHADOW_PRESET_KEYS, SPACER, KitsScrollView as ScrollView, SegmentedControl, FormSelect as Select, SelectButton, Skeleton$1 as Skeleton, SkeletonRows, Skeleton as SkeletonText, Sparkline, StackedBars, StatCard, StatGroup, StatePill, StatusCard, Stepper, Striped, Svg, TableContext, Tabs, Text, ThemeContextProvider, Timeline, Tip, Tooltip, Translate, KitsTreeSelect as TreeSelect, TreeView, TriStateCheckbox, TypingIndicator, VStack, Wash, WidgetPanel, borderProperties, breakpoints, capitalizeFirstLetter, checkExtAgainstAccepted, checkNameDuplication, colorWithAlpha, dateTimeFormat, deepMerge, defaultSeverityTheme, defaultTheme, downloadCanvas, dynamicList, expandShadowNative, extendTheme, fileTypeIcon, fileValidation, filesExt, filesMemes, filesTypes, flattenSlotStyles, fontSizeMapping, formFileValidation, formatNumber, getActiveNativeShadows, getCombinedChildIds, getCustomDateTime, getDateElements, getDefaultValues, getMeme, getParams, getPropertyByPath, getType, getTypes, getURLParams, hasCropEncoder, imagesExt, imagesMemes, imagesTypes, isAlphaToken, isNumber, isSemanticToken, isShadowPreset, isThemeToken, isToday, isValidURL, kitsMotion, listingProperties, localeFiles, allProperties as mapCssProperties, mergeRefs, nonPxProperties, propertiesWithoutCssEquivalent, pxProperties, resolveStyleRecord, resolveTokenValue, schemaBuilder, setActiveNativeShadows, setCropEncoder, shadowNative, shadowWeb, sizeMapping, sizingProperties, timeAgo, timeSince, toMemes, useAllSeverityColors, useBreadcrumb, useBreadcrumbTrail, useComponentDefaults, useCountUp, useDataView, useDialog, useDisclosure, useEnter, useFieldLogic, useFocusStyles, useFormFieldKeyboardNav, useFormManager, useKeyboardNav, useKeyboardNavProvider, useKitsColorScheme, useKitsConcerto, useKitsTheme, useLanguage, useMeasuredWidth, useNativeColorMap, usePermissions, usePopup, useReducedMotion, useResolvedElementStyles, useResolvedStyle, useRtlLineHeight, useScrollState, useSelectionController, useSeverityColors, useTable, useTheme, useThemedFont, useToast };
15664
+ export type { AlignmentsValues, AllSlotKeys, AnimationsValues, AvatarShape, AvatarSize, AvatarStatus, BannerAction, BannerStatus, BaseFieldProps, Booleanish, Breakpoint, CallbackProps, ChatBubbleTone, ChatBubbleVariant, ChipSeverity, ChipSize, ColorMode, ColorScale, ColorValue, Colors, ColorsType, ComponentSize, CropAspect, CropErrorReason, CropHandle, CropMaskShape, CropOutputFormat, CropRotation, CustomSubmitButtonProps, DataTableFilterMeta, DataTableFilterMetaData, DataTableOperatorFilterMetaData, DataTableSelectionSingleChangeEvent, DataTableSortMeta, DeepPartial, DetailItemInputType, DynamicValue, ElementProps, EnteringAnimation, ExitingAnimation, ExpandedKeys, FetchError, FetchSuccess, FetchTableDataRes, FetchTablePaginationData, FieldWrapperProps, File$1 as File, FileUploaderTemplate, FileUploaderTemplateParams, FlexAlignmentsValues, FlexValues, FormBooleanEvent, FormBooleanTarget, FormEvent, FormTarget, GroupFieldConfigs, HighSizingValue, IAccentEdgeProps, IAccordionElementSlots, IAccordionProps, IActionCardProps, IAddressComponentValue, IAddressExperianFormat, IAddressFormat, IAddressFormatResults, IAddressSearchResults, IAlertComponent, IAlertProps, IAlignment, IAnimation, IAutoCompleteCore, IAutoCompleteElement, IAvatarElementSlots, IAvatarProps, IAvatarStackElementSlots, IAvatarStackProps, IBadgeProps, IBannerProps, IBarChartProps, IBaseValidation, IBasicSectionProps, IBg, IBodyTemplate, IBodyTemplateIcon, IBorder, IBottomTabBarElementSlots, IBottomTabBarProps, IBoxComponent, IBreadcrumbCrumb, IBreadcrumbProps, IBuilderAddressField, IBuilderCheckboxField, IBuilderContainerField, IBuilderDateField, IBuilderField, IBuilderFieldBase, IBuilderFieldExport, IBuilderFileField, IBuilderGroupField, IBuilderMultiselectField, IBuilderNumberField, IBuilderPhoneField, IBuilderRadiosField, IBuilderRadiusPickerField, IBuilderSectionField, IBuilderSelectField, IBuilderSwitchField, IBuilderTagsField, IBuilderTextField, IBuilderTextareaField, IButton, IButtonElementSlots, IButtonParams, IButtonProps, IButtonState, IButtonsFilter, ICanvasProps, ICardComponent, ICardElementSlots, ICarouselElementSlots, ICarouselProps, ICascadeSelect, ICascadeSelectCore, IChatBubbleElementSlots, IChatBubbleProps, ICheckbox, ICheckboxFilter, ICheckboxSlots, IChildren, IChildrenParams, IChipInputSlots, IChipProps, ICircularProgressProps, ICollapseProps, IColorPicker, IColumn, IColumnBase, ICombined, ICommandPaletteGroup, ICommandPaletteItem, ICommandPaletteProps, IComponentThemeConfig, IConditionGroupProps, IConditionRowProps, IConditionRule, IConditionsSectionProps, IConfirmDialogProps, IConfirmPopupProps, IContainer, IContainerCardProps, IContainerProps, IContextValues, ICountrySearchResults, ICropEncoder, ICropError, ICropOutput, ICropPoint, ICropRect, ICropResizeOptions, ICropResult, ICropSize, ICropTransform, ICssStyling, IDVButtonsFilter, IDVCheckboxFilter, IDVDateFilter, IDVDropdownFilter, IDVFilters, IDVMessages, IDVMultiselectFilter, IDVNumberFilter, IDVPaginationRequest, IDVPaginationResponse, IDVPaginationState, IDVPhoneFilter, IDVRangeFilter, IDVTextFilter, IDVTriStateFilter, IDataTableContextValues, IDataTableProps, IDataViewContextValues, IDataViewProps, IDataViewRefValues, IDatatableRefValues, IDate, IDateFilter, IDateProps, IDateSeparatorElementSlots, IDateSeparatorProps, IDateValidation, IDatepickerSlots, IDeltaProps, IDetailItem, IDetailListProps, IDialogButton, IDialogProps, IDialogRef, IDialogState, IDisplay, IDividerComponent, IDonutProps, IDonutSegment, IDotGridProps, IDoughnutChartProps, IDropdownCore, IDropdownFilter, IDropdownSelect, IEditableProps, IEditors, IEffects, IElementBase, IElementSlotConfig, IElementStyle, IEmail, IEmailSearchResults, IEmptyStateElementSlots, IEmptyStateProps, IFieldCardProps, IFieldCondition, IFieldPreviewProps, IFile, IFileUploader, IFileUploaderElement, IFileUploaderTypes, IFileValidation, IFilesExtTypeKeys, IFilters, IFlexAlignment, IFlexComponent, IFormAddon, IFormBuilderInternalState, IFormBuilderMeta, IFormBuilderPayload, IFormBuilderProps, IFormComponent, IFormElement, IFormElementBaseSlots, IFormElementSlots, IFormGrid, IFormListsElements, IFormSelect, IFormSelectElements, IFormSingleElement, IGalleryElementSlots, IGalleryItem, IGalleryProps, IGaugeProps, IGrid, IGridCellStyle, IGridComponent, IGridItem, IGridItemComponent, IGroup, IGroupCardProps, IGroupElementSlots, IGroupSettings, IGroupedBarsDatum, IGroupedBarsProps, IHeaderElementSlots, IHeadingComponent, IIconProps, IImageComponent, IImageCropperProps, IImageCropperSlots, IImagesExtTypeKeys, IInteractivity, IKeyedColumn, IKitsAnimation, IKitsBarChartDatum, IKitsBarChartProps, IKitsCheckboxProps, IKitsComponentDefaults, IKitsContainer, IKitsDialogControlled, IKitsInputCalendar, IKitsInputColorPicker, IKitsInputLocation, IKitsInputMask, IKitsInputNumber, IKitsInputPassword, IKitsInputRating, IKitsInputSwitch, IKitsInputText, IKitsInputTextarea, IKitsLineChartProps, IKitsLineChartSeries, IKitsPhoneInput, IKitsRadioProps, IKitsTheme, IKitsThemeColors, IKitsThemeConfig, IKitsThemeContextValues, IKitsThemeFontSizes, IKitsThemeFontWeights, IKitsThemeFonts, IKitsThemeLineHeights, IKitsThemeRadii, IKitsThemeShadows, IKitsThemeSpacing, IKitsToastRef, ILabelElement, ILabelProps, ILanguage, ILayout, ILegendItem, ILegendProps, ILineChartProps, ILinkComponent, ILinkOverrides, IList, IListBoxCore, IListBoxElement, IListBoxSelect, IListItem, IListing, ILoaderProps, ILoadingIndicatorContext, ILocaleContextProps, ILocaleContextValues, ILocation, ILocationDetailsResponse, ILocationResponse, IMainContextProps, IMainContextValues, IMapTilePoint, IMapTileProps, IMemes, IMenuItem, IMessageComposerElementSlots, IMessageComposerProps, IMessageReceiptElementSlots, IMessageReceiptProps, IMessages, IMetricCardProps, IMinusButton, IModalComponent, IModalFormProps, IMultiSelect, IMultiSelectCore, IMultiSelectSlots, IMultiselect, IMultiselectFilter, INativeShadow, INonCrossPlatformTypes, INumberFilter, INumberInput, INumberProps, INumberValidation, IObjectGroup, IOneOfTypes, IOptionItem, IOptionsEditorProps, IOptionsSource, IPageISection, IPaginationRequest, IPaginationResponse, IPaginatorLabels, IPaletteItemProps, IPaletteProps, IPanelCustomSlot, IPassword, IPasswordProps, IPersonCardProps, IPhone, IPhoneFilter, IPhoneObjectValue, IPhoneValidationResults, IPhoneValue, IPieChartProps, IPlusButton, IPolarAreaChartProps, IPopoverProps, IProgressBarElementSlots, IProgressBarProps, IPropertiesPanelProps, IRTLDetection, IRadarChartProps, IRadarProps, IRadarSeries, IRadioCheckboxListItem, IRadioGroup, IRadioSlots, IRadiusPickerEvents, IRadiusPickerField, IRadiusPickerI18n, IRadiusPickerProps, IRangeFilter, IRankedListProps, IRankedListRow, IRef, IRepeatableSettings, IResponsiveElement, IRiseProps, ISVGComponent, IScrollViewComponent, ISegmentedControlOption, ISegmentedControlProps, ISelect, ISelectBase, ISelectCore, ISelectElement, ISelectSlots, ISelectType, ISelectedFile, ISelectedFileType, ISelectionValidation, ISeverityColorSlots, ISeverityThemeMap, IShadowDefinition, IShadowValue, ISidebarElementSlots, ISizing, ISkeleton, ISkeletonRowsProps, ISkeletonText, ISliderProps, ISpacing, ISparklineProps, IStackProps, IStackedBarsDatum, IStackedBarsProps, IStatCardElementSlots, IStatCardProps, IStatGroupElementSlots, IStatGroupProps, IStatePillProps, IStatisticsProps, IStats, IStatusCardProps, IStepperElementSlots, IStepperProps, IStripedProps, IStyleClasses, ISwitch, ISwitchSlots, ITabBarItem, ITabItem, ITableElementSlots, ITableFlatConfig, ITabsElementSlots, ITabsProps, ITags, IText, ITextComponent, ITextFieldProps, ITextFilter, ITextInput, ITextInputProps, ITextInputSlots, ITextValidation, ITextarea, IThemeContextProps, IThemeContextValues, ITimelineElementSlots, ITimelineItem, ITimelineProps, ITipProps, IToastAction, IToastFunction, IToastOptions, IToastParams, IToolbarProps, ITransforms, ITransition, ITranslatableInputProps, ITranslatableText, ITranslateComponent, ITreeItem, ITreeSelect, ITreeSelectCore, ITreeSelectElement, ITreeSelectNode, ITreeViewProps, ITriStateFilter, ITypingIndicatorElementSlots, ITypingIndicatorProps, IUnkeyedColumn, IUseCountUpOptions, IUseFormReturn, IUserAvatar, IValidationSectionProps, IWashProps, IWidgetBarIncomingProp, IWidgetChartContextProps, IWidgetChartProp, IWidgetData, IWidgetDoughnutIncomingProp, IWidgetLineIncomingProp, IWidgetPanelProps, IWidgetPieIncomingProp, IWidgetPolarAreaIncomingProp, IWidgetRadarIncomingProp, IconName, IconType, InputTextFieldProps, KitsBreakpoint, KitsConditionalObject, KitsDevice, KitsMotion, KitsOrientation, KitsPlatform, KitsResponsiveObject, KitsResponsiveValue, KitsThemeOverride, LabelVariant, LatLng, LoadMode, LoadingIndicatorRenderer, LogicFunction, MapInteraction, MeasurementValues, MessageReceiptState, Nullable, Numbering0_12, Numbering0_32, Numberish, OnCenterChange, OnLocationError, OnLocationFound, OnRadiusChange, OnRadiusValueChange, OnSubmitHandler, OnUnitChange, Orientation, PaginationState, PaginatorPageChangeEvent$1 as PaginatorPageChangeEvent, Permissions, PlatformKey, RadiusPickerDisplay, RadiusPickerLayout, RadiusPickerSize, RadiusUnit, RadiusValue, RenderLocationButtonProps, RenderMapProps, RenderSearchBoxProps, SelectFieldProps, SemanticColorTokens, ServerMethod, ServerResponse, ServerSideProps, SetManyOpts, Severity, Shades, ShadowPreset, Shapes, SidesValues, SizingNumbering, SizingValue, StatePillState, StepperVariant, TAcceptedFileType, TBuilderFieldType, TCheckboxRadioMode, TCheckboxRadioSize, TConditionAction, TConditionMatch, TConditionOperator, TDateBoundary, TDynamicFlag, TExternalFilterLabelMode, TFiltersLayout, TIsoFormat, TItemsPerRow, TKeyFilter, TLocationProvider, TPaginatorAlign, TextLabels, TextProps, ThemedFontKind, TimelineItemStatus, Timeout, TimingNumbering, ToastPosition, ToastSeverity, ToastSize, TooltipDataAttributes, TooltipProps, TreeChangeProps, TreeCheckboxSelectionKeyType, TreeCheckboxSelectionKeys, TreeNode, TreeNodeClickEvent, TreeNodeTemplateOptions, TreeProps, TreeRef, TreeSelectionEvent, Types, UseComponentDefaultsResult, UseDisclosureReturnType, UseFieldLogicElementProps, UseFieldLogicProps, UseFieldLogicReturn, UseFormManagerEvents, UseFormManagerReturn, UseToastApi, ValidationProps, children, clearFunction, downloadableFileResponse, settings1, settings2 };
package/index.js CHANGED
@@ -35,6 +35,8 @@ export { SegmentedControl } from './components/SegmentedControl/index.js';
35
35
  export { CommandPalette } from './components/overlay/CommandPalette/index.js';
36
36
  export { StatePill } from './components/StatePill/index.js';
37
37
  export { Avatar, AvatarStack } from './components/Avatar/index.js';
38
+ export { ImageCropper } from './components/ImageCropper/index.js';
39
+ export { hasCropEncoder, setCropEncoder } from './components/ImageCropper/encoderRegistry.js';
38
40
  export { Stepper } from './components/Stepper/index.js';
39
41
  export { StatCard, StatGroup } from './components/StatCard/index.js';
40
42
  export { default as Rise } from './components/Rise/index.js';