@lmb-it/kitsconcerto-native 0.1.277 → 0.1.284

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 (220) hide show
  1. package/components/Avatar/index.cjs +1 -0
  2. package/components/Avatar/index.cjs.map +1 -1
  3. package/components/Avatar/index.js +1 -0
  4. package/components/Avatar/index.js.map +1 -1
  5. package/components/Banner/banner.cjs +1 -0
  6. package/components/Banner/banner.cjs.map +1 -1
  7. package/components/Banner/banner.js +1 -0
  8. package/components/Banner/banner.js.map +1 -1
  9. package/components/BottomTabBar/index.cjs +1 -0
  10. package/components/BottomTabBar/index.cjs.map +1 -1
  11. package/components/BottomTabBar/index.js +1 -0
  12. package/components/BottomTabBar/index.js.map +1 -1
  13. package/components/BreadCrumb/index.cjs.map +1 -1
  14. package/components/BreadCrumb/index.js.map +1 -1
  15. package/components/Button/Button.cjs +1 -0
  16. package/components/Button/Button.cjs.map +1 -1
  17. package/components/Button/Button.js +1 -0
  18. package/components/Button/Button.js.map +1 -1
  19. package/components/Carousel/index.cjs +1 -0
  20. package/components/Carousel/index.cjs.map +1 -1
  21. package/components/Carousel/index.js +1 -0
  22. package/components/Carousel/index.js.map +1 -1
  23. package/components/ChatBubble/index.cjs +1 -0
  24. package/components/ChatBubble/index.cjs.map +1 -1
  25. package/components/ChatBubble/index.js +1 -0
  26. package/components/ChatBubble/index.js.map +1 -1
  27. package/components/Chip/index.cjs +1 -0
  28. package/components/Chip/index.cjs.map +1 -1
  29. package/components/Chip/index.js +1 -0
  30. package/components/Chip/index.js.map +1 -1
  31. package/components/DateSeparator/index.cjs +1 -0
  32. package/components/DateSeparator/index.cjs.map +1 -1
  33. package/components/DateSeparator/index.js +1 -0
  34. package/components/DateSeparator/index.js.map +1 -1
  35. package/components/DetailsList/index.cjs +1 -0
  36. package/components/DetailsList/index.cjs.map +1 -1
  37. package/components/DetailsList/index.js +1 -0
  38. package/components/DetailsList/index.js.map +1 -1
  39. package/components/EmptyState/index.cjs +1 -0
  40. package/components/EmptyState/index.cjs.map +1 -1
  41. package/components/EmptyState/index.js +1 -0
  42. package/components/EmptyState/index.js.map +1 -1
  43. package/components/Gallery/index.cjs +1 -0
  44. package/components/Gallery/index.cjs.map +1 -1
  45. package/components/Gallery/index.js +1 -0
  46. package/components/Gallery/index.js.map +1 -1
  47. package/components/MessageComposer/index.cjs +1 -0
  48. package/components/MessageComposer/index.cjs.map +1 -1
  49. package/components/MessageComposer/index.js +1 -0
  50. package/components/MessageComposer/index.js.map +1 -1
  51. package/components/MessageReceipt/index.cjs +1 -0
  52. package/components/MessageReceipt/index.cjs.map +1 -1
  53. package/components/MessageReceipt/index.js +1 -0
  54. package/components/MessageReceipt/index.js.map +1 -1
  55. package/components/ProgressBar/index.cjs +1 -0
  56. package/components/ProgressBar/index.cjs.map +1 -1
  57. package/components/ProgressBar/index.js +1 -0
  58. package/components/ProgressBar/index.js.map +1 -1
  59. package/components/SegmentedControl/index.cjs +1 -0
  60. package/components/SegmentedControl/index.cjs.map +1 -1
  61. package/components/SegmentedControl/index.js +1 -0
  62. package/components/SegmentedControl/index.js.map +1 -1
  63. package/components/StatCard/index.cjs +1 -0
  64. package/components/StatCard/index.cjs.map +1 -1
  65. package/components/StatCard/index.js +1 -0
  66. package/components/StatCard/index.js.map +1 -1
  67. package/components/Stepper/index.cjs +1 -0
  68. package/components/Stepper/index.cjs.map +1 -1
  69. package/components/Stepper/index.js +1 -0
  70. package/components/Stepper/index.js.map +1 -1
  71. package/components/Tabs/index.cjs +1 -0
  72. package/components/Tabs/index.cjs.map +1 -1
  73. package/components/Tabs/index.js +1 -0
  74. package/components/Tabs/index.js.map +1 -1
  75. package/components/Timeline/index.cjs +1 -0
  76. package/components/Timeline/index.cjs.map +1 -1
  77. package/components/Timeline/index.js +1 -0
  78. package/components/Timeline/index.js.map +1 -1
  79. package/components/Translate/index.cjs +1 -0
  80. package/components/Translate/index.cjs.map +1 -1
  81. package/components/Translate/index.js +1 -0
  82. package/components/Translate/index.js.map +1 -1
  83. package/components/TypingIndicator/index.cjs +1 -0
  84. package/components/TypingIndicator/index.cjs.map +1 -1
  85. package/components/TypingIndicator/index.js +1 -0
  86. package/components/TypingIndicator/index.js.map +1 -1
  87. package/components/overlay/ConfirmDialog/index.cjs +1 -0
  88. package/components/overlay/ConfirmDialog/index.cjs.map +1 -1
  89. package/components/overlay/ConfirmDialog/index.js +1 -0
  90. package/components/overlay/ConfirmDialog/index.js.map +1 -1
  91. package/components/overlay/Dialog/index.cjs +1 -0
  92. package/components/overlay/Dialog/index.cjs.map +1 -1
  93. package/components/overlay/Dialog/index.js +1 -0
  94. package/components/overlay/Dialog/index.js.map +1 -1
  95. package/contexts/BreadcrumbContext.cjs +33 -0
  96. package/contexts/BreadcrumbContext.cjs.map +1 -0
  97. package/contexts/BreadcrumbContext.js +28 -0
  98. package/contexts/BreadcrumbContext.js.map +1 -0
  99. package/form/controls/Checkbox/index.cjs +1 -0
  100. package/form/controls/Checkbox/index.cjs.map +1 -1
  101. package/form/controls/Checkbox/index.js +1 -0
  102. package/form/controls/Checkbox/index.js.map +1 -1
  103. package/form/controls/RadioButton/radio.cjs +1 -0
  104. package/form/controls/RadioButton/radio.cjs.map +1 -1
  105. package/form/controls/RadioButton/radio.js +1 -0
  106. package/form/controls/RadioButton/radio.js.map +1 -1
  107. package/form/controls/TriStateCheckbox/index.cjs +1 -0
  108. package/form/controls/TriStateCheckbox/index.cjs.map +1 -1
  109. package/form/controls/TriStateCheckbox/index.js +1 -0
  110. package/form/controls/TriStateCheckbox/index.js.map +1 -1
  111. package/form/file-pickers/index.cjs +1 -0
  112. package/form/file-pickers/index.cjs.map +1 -1
  113. package/form/file-pickers/index.js +1 -0
  114. package/form/file-pickers/index.js.map +1 -1
  115. package/form/helpers/FormContainer/index.cjs +1 -0
  116. package/form/helpers/FormContainer/index.cjs.map +1 -1
  117. package/form/helpers/FormContainer/index.js +1 -0
  118. package/form/helpers/FormContainer/index.js.map +1 -1
  119. package/form/inputs/ColorPicker/index.cjs +1 -0
  120. package/form/inputs/ColorPicker/index.cjs.map +1 -1
  121. package/form/inputs/ColorPicker/index.js +1 -0
  122. package/form/inputs/ColorPicker/index.js.map +1 -1
  123. package/form/inputs/Datepicker/index.cjs +1 -0
  124. package/form/inputs/Datepicker/index.cjs.map +1 -1
  125. package/form/inputs/Datepicker/index.js +1 -0
  126. package/form/inputs/Datepicker/index.js.map +1 -1
  127. package/form/inputs/InputLocation/index.cjs +1 -0
  128. package/form/inputs/InputLocation/index.cjs.map +1 -1
  129. package/form/inputs/InputLocation/index.js +1 -0
  130. package/form/inputs/InputLocation/index.js.map +1 -1
  131. package/form/inputs/InputMask/index.cjs +1 -0
  132. package/form/inputs/InputMask/index.cjs.map +1 -1
  133. package/form/inputs/InputMask/index.js +1 -0
  134. package/form/inputs/InputMask/index.js.map +1 -1
  135. package/form/inputs/InputNumber/index.cjs +1 -0
  136. package/form/inputs/InputNumber/index.cjs.map +1 -1
  137. package/form/inputs/InputNumber/index.js +1 -0
  138. package/form/inputs/InputNumber/index.js.map +1 -1
  139. package/form/inputs/InputPassword/index.cjs +1 -0
  140. package/form/inputs/InputPassword/index.cjs.map +1 -1
  141. package/form/inputs/InputPassword/index.js +1 -0
  142. package/form/inputs/InputPassword/index.js.map +1 -1
  143. package/form/inputs/InputSwitch/index.cjs +1 -0
  144. package/form/inputs/InputSwitch/index.cjs.map +1 -1
  145. package/form/inputs/InputSwitch/index.js +1 -0
  146. package/form/inputs/InputSwitch/index.js.map +1 -1
  147. package/form/inputs/InputText/index.cjs +1 -0
  148. package/form/inputs/InputText/index.cjs.map +1 -1
  149. package/form/inputs/InputText/index.js +1 -0
  150. package/form/inputs/InputText/index.js.map +1 -1
  151. package/form/inputs/InputTextarea/index.cjs +1 -0
  152. package/form/inputs/InputTextarea/index.cjs.map +1 -1
  153. package/form/inputs/InputTextarea/index.js +1 -0
  154. package/form/inputs/InputTextarea/index.js.map +1 -1
  155. package/form/inputs/PhoneInput/index.cjs +1 -0
  156. package/form/inputs/PhoneInput/index.cjs.map +1 -1
  157. package/form/inputs/PhoneInput/index.js +1 -0
  158. package/form/inputs/PhoneInput/index.js.map +1 -1
  159. package/form/selects/AutoComplete/index.cjs +1 -0
  160. package/form/selects/AutoComplete/index.cjs.map +1 -1
  161. package/form/selects/AutoComplete/index.js +1 -0
  162. package/form/selects/AutoComplete/index.js.map +1 -1
  163. package/form/selects/CascadeSelect/index.cjs +1 -0
  164. package/form/selects/CascadeSelect/index.cjs.map +1 -1
  165. package/form/selects/CascadeSelect/index.js +1 -0
  166. package/form/selects/CascadeSelect/index.js.map +1 -1
  167. package/form/selects/Dropdown/index.cjs +1 -0
  168. package/form/selects/Dropdown/index.cjs.map +1 -1
  169. package/form/selects/Dropdown/index.js +1 -0
  170. package/form/selects/Dropdown/index.js.map +1 -1
  171. package/form/selects/ListBox/index.cjs +1 -0
  172. package/form/selects/ListBox/index.cjs.map +1 -1
  173. package/form/selects/ListBox/index.js +1 -0
  174. package/form/selects/ListBox/index.js.map +1 -1
  175. package/form/selects/MultiSelect/index.cjs +1 -0
  176. package/form/selects/MultiSelect/index.cjs.map +1 -1
  177. package/form/selects/MultiSelect/index.js +1 -0
  178. package/form/selects/MultiSelect/index.js.map +1 -1
  179. package/form/selects/TreeSelect/index.cjs +1 -0
  180. package/form/selects/TreeSelect/index.cjs.map +1 -1
  181. package/form/selects/TreeSelect/index.js +1 -0
  182. package/form/selects/TreeSelect/index.js.map +1 -1
  183. package/form/selects/helpers/SelectPopupOverlay.cjs +1 -0
  184. package/form/selects/helpers/SelectPopupOverlay.cjs.map +1 -1
  185. package/form/selects/helpers/SelectPopupOverlay.js +1 -0
  186. package/form/selects/helpers/SelectPopupOverlay.js.map +1 -1
  187. package/form-renderer/components/fields/FileUploader/index.cjs +1 -0
  188. package/form-renderer/components/fields/FileUploader/index.cjs.map +1 -1
  189. package/form-renderer/components/fields/FileUploader/index.js +1 -0
  190. package/form-renderer/components/fields/FileUploader/index.js.map +1 -1
  191. package/form-renderer/components/fields/Group/index.cjs +1 -0
  192. package/form-renderer/components/fields/Group/index.cjs.map +1 -1
  193. package/form-renderer/components/fields/Group/index.js +1 -0
  194. package/form-renderer/components/fields/Group/index.js.map +1 -1
  195. package/form-renderer/components/fields/Radios/index.cjs +1 -0
  196. package/form-renderer/components/fields/Radios/index.cjs.map +1 -1
  197. package/form-renderer/components/fields/Radios/index.js +1 -0
  198. package/form-renderer/components/fields/Radios/index.js.map +1 -1
  199. package/form-renderer/components/fields/Select/index.cjs +1 -0
  200. package/form-renderer/components/fields/Select/index.cjs.map +1 -1
  201. package/form-renderer/components/fields/Select/index.js +1 -0
  202. package/form-renderer/components/fields/Select/index.js.map +1 -1
  203. package/hooks/main.cjs +1 -0
  204. package/hooks/main.cjs.map +1 -1
  205. package/hooks/main.js +1 -0
  206. package/hooks/main.js.map +1 -1
  207. package/hooks/useBreadcrumbTrail.cjs +21 -0
  208. package/hooks/useBreadcrumbTrail.cjs.map +1 -0
  209. package/hooks/useBreadcrumbTrail.js +16 -0
  210. package/hooks/useBreadcrumbTrail.js.map +1 -0
  211. package/index.cjs +5 -0
  212. package/index.cjs.map +1 -1
  213. package/index.d.ts +144 -5
  214. package/index.js +2 -0
  215. package/index.js.map +1 -1
  216. package/package.json +1 -1
  217. package/primitives/Card/index.cjs +1 -0
  218. package/primitives/Card/index.cjs.map +1 -1
  219. package/primitives/Card/index.js +1 -0
  220. package/primitives/Card/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["useComponentDefaults","useResolvedStyle","useLanguage","keyboardTypeFromKeyFilter","useFormFieldKeyboardNav","useFocusStyles","applyKeyFilterKeepPrev","jsx","Input","InputField","mergeRefs","FloatLabelNative","View","KitsContainer"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["useComponentDefaults","useResolvedStyle","useLanguage","keyboardTypeFromKeyFilter","useFormFieldKeyboardNav","useFocusStyles","applyKeyFilterKeepPrev","jsx","Input","InputField","mergeRefs","FloatLabelNative","View","KitsContainer"],"mappings":"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"}
@@ -87,6 +87,7 @@ import '../../../apps/mobile/src/Core/Input/Slot.js';
87
87
  import { useLanguage } from '../../../hooks/locale.js';
88
88
  import '../../../contexts/DialogContext.js';
89
89
  import '../../../contexts/PermissionsContext.js';
90
+ import '../../../contexts/BreadcrumbContext.js';
90
91
  import useComponentDefaults from '../../../hooks/useComponentDefaults.js';
91
92
  import useResolvedStyle from '../../../hooks/useResolvedStyle.js';
92
93
  import { useFocusStyles } from '../../../hooks/useFocusStyles.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["Input","InputField"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,gBAAgB,CAAC,EAAE,GAAA,EAAK,GAAG,UAAS,KAAsB;AAC5D,EAAA,MAAM,EAAC,aAAa,KAAA,EAAO,UAAA,EAAY,eAAa,GAAI,oBAAA,CAAqB,WAAA,EAAa,QAAA,EAAU,OAAO,CAAA;AAC3G,EAAA,MAAM,kBAAA,GAAqB,iBAAiB,UAAU,CAAA;AACtD,EAAA,MAAM,iBAAA,GAAoB,gBAAA,CAAiB,aAAA,EAAe,IAAA,IAAQ,EAAE,CAAA;AACpE,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,WAAA,EAAY;AAE9B,EAAA,MAAM;AAAA,IACF,EAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,cAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA,EAAW,UAAA;AAAA;AAAA,IACX,GAAG;AAAA,GACP,GAAI,KAAA;AAGJ,EAAA,MAAM,oBAAA,GAAuB,YAAA,IAAgB,yBAAA,CAA0B,SAAgB,CAAA;AAEvF,EAAA,MAAM,EAAC,QAAA,EAAU,QAAA,EAAQ,GAAI,uBAAA,CAAwB,iBAAiB,EAAE,CAAA;AAGxE,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAG/B,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,KAAA,CAAM,QAAA;AAAA,IAC5C,MAAA,CAAO,gBAAgB,EAAE;AAAA,GAC7B;AAGA,EAAA,MAAM,CAAC,SAAA,EAAW,UAAU,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AACpD,EAAA,MAAM,SAAA,GAAY,qBAAqB,MAAA,CAAO,IAAA,CAAK,iBAAiB,CAAA,CAAE,MAAA,GAAS,IAAI,iBAAA,GAAoB,kBAAA;AAIvG,EAA2B,cAAA,CAAe,SAAA,EAAW,SAAS;AAI9D,EAAA,KAAA,CAAM,UAAU,MAAM;AAClB,IAAA,IAAI,YAAA,EAAc;AACd,MAAA,gBAAA,CAAiB,MAAA,CAAO,KAAA,IAAS,EAAE,CAAC,CAAA;AAAA,IACxC;AAAA,EACJ,CAAA,EAAG,CAAC,YAAA,EAAc,KAAK,CAAC,CAAA;AAGxB,EAAA,MAAM,gBAAA,GAAmB,CAAC,OAAA,KAAoB;AAC1C,IAAA,MAAM,IAAA,GAAO,YAAA,GAAe,MAAA,CAAO,KAAA,IAAS,EAAE,CAAA,GAAI,aAAA;AAElD,IAAA,MAAM,WAAW,SAAA,GACX,sBAAA,CAAuB,IAAA,EAAM,OAAA,EAAS,SAAgB,CAAA,GACtD,OAAA;AAEN,IAAA,IAAI,CAAC,YAAA,EAAc;AACf,MAAA,gBAAA,CAAiB,QAAQ,CAAA;AAAA,IAC7B;AAEA,IAAA,QAAA,GAAW;AAAA,MACP,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA;AAAS,KACtB,CAAA;AAAA,EACZ,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,YAAA,GACf,MAAA,CAAO,KAAA,IAAS,EAAE,CAAA,GAClB,aAAA;AAEN,EAAA,MAAM,OAAA,mBACF,GAAA;AAAA,IAACA,aAAA;AAAA,IAAA;AAAA,MACI,GAAI,UAAA;AAAA,MACL,UAAA,EAAY,CAAC,CAAC,QAAA;AAAA,MACd,SAAA,EAAW,CAAC,CAAC,OAAA;AAAA,MACb,SAAA;AAAA,MACA,KAAA,EAAO,iBAAA;AAAA,MACN,GAAI,IAAA;AAAA,MAEL,QAAA,kBAAA,GAAA;AAAA,QAACC,kBAAA;AAAA,QAAA;AAAA,UACG,GAAA,EAAK,SAAA,CAAU,QAAA,EAAU,GAAG,CAAA;AAAA,UAC5B,KAAA,EAAO,YAAA;AAAA,UACP,WAAA,EAAa,iBAAiB,MAAA,GAAY,WAAA;AAAA,UAC1C,UAAU,CAAC,QAAA;AAAA,UACX,YAAA,EAAc,oBAAA;AAAA,UACd,SAAA;AAAA,UACA,YAAA,EAAc,gBAAA;AAAA,UACd,OAAA,EAAS,CAAC,CAAA,KAAW;AACjB,YAAA,UAAA,CAAW,IAAI,CAAA;AACf,YAAC,IAAA,EAAc,UAAU,CAAC,CAAA;AAAA,UAC9B,CAAA;AAAA,UACA,MAAA,EAAQ,CAAC,CAAA,KAAW;AAChB,YAAA,UAAA,CAAW,KAAK,CAAA;AAChB,YAAC,IAAA,EAAc,SAAS,CAAC,CAAA;AAAA,UAC7B,CAAA;AAAA,UAMA,KAAA,EAAO;AAAA,YACH,SAAA,EAAW,QAAQ,OAAA,GAAU,MAAA;AAAA,YAC7B,gBAAA,EAAkB,QAAQ,KAAA,GAAQ;AAAA,WACtC;AAAA,UACC,GAAG;AAAA;AAAA;AACR;AAAA,GACJ;AAOJ,EAAA,IAAG,QAAA,EAAS;AACR,IAAA,OAAO,cAAA,mBACH,GAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACG,OACI,OAAO,KAAA,KAAU,QAAA,GACX,KAAA,GACC,OAAe,IAAA,IAAQ,EAAA;AAAA,QAElC,KAAA,EAAO,YAAA;AAAA,QACP,SAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA,EAAgB,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,QAErC,8BAAC,IAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,IACjB,QAAA,EAAA,OAAA,EACL;AAAA;AAAA,KACJ,GAEA,OAAA;AAAA,EAER;AAEA,EAAA,uBACI,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACG,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MAEC,QAAA,EAAA,cAAA,mBACG,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACG,OACI,OAAO,KAAA,KAAU,QAAA,GACX,KAAA,GACC,OAAe,IAAA,IAAQ,EAAA;AAAA,UAElC,KAAA,EAAO,YAAA;AAAA,UACP,SAAA;AAAA,UACA,QAAA;AAAA,UACA,cAAA,EAAgB,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,UAEpC,QAAA,EAAA;AAAA;AAAA,OACL,GAEA;AAAA;AAAA,GAER;AAER;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["Input","InputField"],"mappings":"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"}
@@ -93,6 +93,7 @@ var mergeRefs = require('../../../utils/mergeRefs.cjs');
93
93
  var locale = require('../../../hooks/locale.cjs');
94
94
  require('../../../contexts/DialogContext.cjs');
95
95
  require('../../../contexts/PermissionsContext.cjs');
96
+ require('../../../contexts/BreadcrumbContext.cjs');
96
97
  var useComponentDefaults = require('../../../hooks/useComponentDefaults.cjs');
97
98
  var useResolvedStyle = require('../../../hooks/useResolvedStyle.cjs');
98
99
  var KitsThemeProvider_native = require('../../../contexts/Theme/KitsThemeProvider.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputTextarea/index.native.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport type { IKitsInputTextarea } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { useSeparator } from \"../../../factory\";\nimport { applyKeyFilter } from \"../InputText/keyFilter.native\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\n\n// ✅ correct Gluestack components\nimport {\n Textarea,\n TextareaInput,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\n\ntype NativeTextareaRef = {\n focus(): void;\n blur(): void;\n clear(): void;\n};\n\nconst KitsInputTextarea = forwardRef<\n NativeTextareaRef,\n IKitsInputTextarea\n>((rawProps, ref) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Textarea', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n /*\n * ⛔ THE TYPED TEXT HAD NO COLOUR OF ITS OWN — found on AlphaMatch's\n * offer composer, 22 Sep 2026: near-black on a dark field while typing.\n * `resolvedRootStyle`/`resolvedThemeStyle` DO carry `color: 'text'`, but\n * that lands on the outer `<Textarea>` wrapper, which is a View — RN does\n * not propagate `color` from a View into a nested TextInput's own text\n * rendering. `<TextareaInput>` is the actual RN TextInput and needs the\n * colour on ITS OWN style, the same way InputText's shared Field.tsx\n * always does (`color: resolveThemeTokenForNative('text')`).\n */\n const { resolveToken } = useKitsTheme();\n const resolvedRootColor =\n (resolvedRootStyle as any)?.color ?? (resolvedThemeStyle as any)?.color;\n const valueColor =\n typeof resolvedRootColor === \"string\" && resolvedRootColor.length > 0\n ? resolvedRootColor\n : resolveToken('text');\n const {\n id,\n label,\n value,\n defaultValue,\n onChange,\n keyFilter,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n inputSize,\n containerStyle,\n localProps,\n keyboardNavId,\n rows,\n autoResize,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n // Props that belong on the inner TextareaInput, not the outer wrapper.\n // Spreading nativeProps onto <Textarea> silently drops them because the\n // wrapper doesn't render text. Pull them out and forward explicitly so\n // placeholder, autoCapitalize, autoCorrect etc. actually take effect.\n placeholder,\n placeholderTextColor,\n autoCapitalize,\n autoCorrect,\n autoFocus,\n returnKeyType,\n ...rest\n } = props as IKitsInputTextarea & {\n placeholder?: string;\n placeholderTextColor?: string;\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n autoCorrect?: boolean;\n autoFocus?: boolean;\n returnKeyType?: string;\n };\n\n const resolvedKeyboardType = keyboardTypeFromKeyFilter(keyFilter as any);\n\n // Calculate height from rows: lineHeight × rows + vertical padding\n const LINE_HEIGHT = 20;\n const VERTICAL_PADDING = 16;\n const calculatedHeight = rows ? (LINE_HEIGHT * rows) + VERTICAL_PADDING : undefined;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n const isControlled = value !== undefined;\n\n const { cssProps, nativeProps } = useSeparator<any>({\n ...(rest as any),\n ...(localProps as any),\n });\n\n const fieldRef = useRef<any>(null);\n\n /** internal state for uncontrolled mode */\n const [internalValue, setInternalValue] = useState<string>(\n () => String(defaultValue ?? \"\")\n );\n\n /** sync when controlled */\n useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n useImperativeHandle(ref, () => ({\n focus: () => fieldRef.current?.focus?.(),\n blur: () => fieldRef.current?.blur?.(),\n clear: () => {\n if (!isControlled) setInternalValue(\"\");\n onChange?.({ target: { value: \"\" } } as any);\n },\n }));\n\n const handleChangeText = useCallback(\n (nextRaw: string) => {\n const prev = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilter(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n // Prime-like event\n onChange?.({ target: { value: filtered } } as any);\n },\n [keyFilter, onChange, isControlled, internalValue, value],\n );\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n invalid={invalid}\n label={label}\n hideError={hideError}\n disabled={disabled}\n inputSize={inputSize}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n <Textarea\n size={inputSize ?? \"md\"}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n ...(cssProps as any),\n ...(calculatedHeight ? {height: calculatedHeight, minHeight: calculatedHeight} : {}),\n }}\n {...nativeProps}\n >\n <TextareaInput\n ref={mergeRefs(inputRef, fieldRef)}\n value={displayValue}\n onChangeText={handleChangeText}\n editable={!disabled}\n numberOfLines={rows ?? 4}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n textAlignVertical=\"top\"\n // Forward input-level props that were destructured off `props`\n // — these would never reach the inner input if we relied on\n // `nativeProps` because nativeProps is spread on the outer\n // <Textarea> wrapper, which doesn't render text.\n placeholder={placeholder}\n placeholderTextColor={placeholderTextColor}\n autoCapitalize={autoCapitalize}\n autoCorrect={autoCorrect}\n autoFocus={autoFocus}\n returnKeyType={returnKeyType as any}\n // Inline padding so the cursor isn't flush against the edge\n // when the consumer overrides height via `rows`. Without\n // this the height inline-style replaces Gluestack's default\n // padding and the caret renders at (0,0) of the textarea.\n style={{\n paddingHorizontal: 12,\n paddingVertical: 8,\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n color: valueColor,\n // ...(calculatedHeight ? {height: calculatedHeight - VERTICAL_PADDING} : {}),\n }}\n {...navProps}\n />\n </Textarea>\n </KitsContainer>\n );\n});\n\nKitsInputTextarea.displayName = \"KitsInputTextarea\";\nexport default KitsInputTextarea;\n"],"names":["forwardRef","useComponentDefaults","useResolvedStyle","useLanguage","useKitsTheme","keyboardTypeFromKeyFilter","useFormFieldKeyboardNav","useSeparator","useRef","useState","useEffect","useImperativeHandle","useCallback","applyKeyFilter","jsx","KitsContainer","Textarea","TextareaInput","mergeRefs"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputTextarea/index.native.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport type { IKitsInputTextarea } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { useSeparator } from \"../../../factory\";\nimport { applyKeyFilter } from \"../InputText/keyFilter.native\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\n\n// ✅ correct Gluestack components\nimport {\n Textarea,\n TextareaInput,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\n\ntype NativeTextareaRef = {\n focus(): void;\n blur(): void;\n clear(): void;\n};\n\nconst KitsInputTextarea = forwardRef<\n NativeTextareaRef,\n IKitsInputTextarea\n>((rawProps, ref) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Textarea', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n /*\n * ⛔ THE TYPED TEXT HAD NO COLOUR OF ITS OWN — found on AlphaMatch's\n * offer composer, 22 Sep 2026: near-black on a dark field while typing.\n * `resolvedRootStyle`/`resolvedThemeStyle` DO carry `color: 'text'`, but\n * that lands on the outer `<Textarea>` wrapper, which is a View — RN does\n * not propagate `color` from a View into a nested TextInput's own text\n * rendering. `<TextareaInput>` is the actual RN TextInput and needs the\n * colour on ITS OWN style, the same way InputText's shared Field.tsx\n * always does (`color: resolveThemeTokenForNative('text')`).\n */\n const { resolveToken } = useKitsTheme();\n const resolvedRootColor =\n (resolvedRootStyle as any)?.color ?? (resolvedThemeStyle as any)?.color;\n const valueColor =\n typeof resolvedRootColor === \"string\" && resolvedRootColor.length > 0\n ? resolvedRootColor\n : resolveToken('text');\n const {\n id,\n label,\n value,\n defaultValue,\n onChange,\n keyFilter,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n inputSize,\n containerStyle,\n localProps,\n keyboardNavId,\n rows,\n autoResize,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n // Props that belong on the inner TextareaInput, not the outer wrapper.\n // Spreading nativeProps onto <Textarea> silently drops them because the\n // wrapper doesn't render text. Pull them out and forward explicitly so\n // placeholder, autoCapitalize, autoCorrect etc. actually take effect.\n placeholder,\n placeholderTextColor,\n autoCapitalize,\n autoCorrect,\n autoFocus,\n returnKeyType,\n ...rest\n } = props as IKitsInputTextarea & {\n placeholder?: string;\n placeholderTextColor?: string;\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n autoCorrect?: boolean;\n autoFocus?: boolean;\n returnKeyType?: string;\n };\n\n const resolvedKeyboardType = keyboardTypeFromKeyFilter(keyFilter as any);\n\n // Calculate height from rows: lineHeight × rows + vertical padding\n const LINE_HEIGHT = 20;\n const VERTICAL_PADDING = 16;\n const calculatedHeight = rows ? (LINE_HEIGHT * rows) + VERTICAL_PADDING : undefined;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n const isControlled = value !== undefined;\n\n const { cssProps, nativeProps } = useSeparator<any>({\n ...(rest as any),\n ...(localProps as any),\n });\n\n const fieldRef = useRef<any>(null);\n\n /** internal state for uncontrolled mode */\n const [internalValue, setInternalValue] = useState<string>(\n () => String(defaultValue ?? \"\")\n );\n\n /** sync when controlled */\n useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n useImperativeHandle(ref, () => ({\n focus: () => fieldRef.current?.focus?.(),\n blur: () => fieldRef.current?.blur?.(),\n clear: () => {\n if (!isControlled) setInternalValue(\"\");\n onChange?.({ target: { value: \"\" } } as any);\n },\n }));\n\n const handleChangeText = useCallback(\n (nextRaw: string) => {\n const prev = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilter(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n // Prime-like event\n onChange?.({ target: { value: filtered } } as any);\n },\n [keyFilter, onChange, isControlled, internalValue, value],\n );\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n invalid={invalid}\n label={label}\n hideError={hideError}\n disabled={disabled}\n inputSize={inputSize}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n <Textarea\n size={inputSize ?? \"md\"}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n ...(cssProps as any),\n ...(calculatedHeight ? {height: calculatedHeight, minHeight: calculatedHeight} : {}),\n }}\n {...nativeProps}\n >\n <TextareaInput\n ref={mergeRefs(inputRef, fieldRef)}\n value={displayValue}\n onChangeText={handleChangeText}\n editable={!disabled}\n numberOfLines={rows ?? 4}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n textAlignVertical=\"top\"\n // Forward input-level props that were destructured off `props`\n // — these would never reach the inner input if we relied on\n // `nativeProps` because nativeProps is spread on the outer\n // <Textarea> wrapper, which doesn't render text.\n placeholder={placeholder}\n placeholderTextColor={placeholderTextColor}\n autoCapitalize={autoCapitalize}\n autoCorrect={autoCorrect}\n autoFocus={autoFocus}\n returnKeyType={returnKeyType as any}\n // Inline padding so the cursor isn't flush against the edge\n // when the consumer overrides height via `rows`. Without\n // this the height inline-style replaces Gluestack's default\n // padding and the caret renders at (0,0) of the textarea.\n style={{\n paddingHorizontal: 12,\n paddingVertical: 8,\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n color: valueColor,\n // ...(calculatedHeight ? {height: calculatedHeight - VERTICAL_PADDING} : {}),\n }}\n {...navProps}\n />\n </Textarea>\n </KitsContainer>\n );\n});\n\nKitsInputTextarea.displayName = \"KitsInputTextarea\";\nexport default KitsInputTextarea;\n"],"names":["forwardRef","useComponentDefaults","useResolvedStyle","useLanguage","useKitsTheme","keyboardTypeFromKeyFilter","useFormFieldKeyboardNav","useSeparator","useRef","useState","useEffect","useImperativeHandle","useCallback","applyKeyFilter","jsx","KitsContainer","Textarea","TextareaInput","mergeRefs"],"mappings":"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"}
@@ -89,6 +89,7 @@ import { mergeRefs } from '../../../utils/mergeRefs.js';
89
89
  import { useLanguage } from '../../../hooks/locale.js';
90
90
  import '../../../contexts/DialogContext.js';
91
91
  import '../../../contexts/PermissionsContext.js';
92
+ import '../../../contexts/BreadcrumbContext.js';
92
93
  import useComponentDefaults from '../../../hooks/useComponentDefaults.js';
93
94
  import useResolvedStyle from '../../../hooks/useResolvedStyle.js';
94
95
  import { useKitsTheme } from '../../../contexts/Theme/KitsThemeProvider.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputTextarea/index.native.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport type { IKitsInputTextarea } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { useSeparator } from \"../../../factory\";\nimport { applyKeyFilter } from \"../InputText/keyFilter.native\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\n\n// ✅ correct Gluestack components\nimport {\n Textarea,\n TextareaInput,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\n\ntype NativeTextareaRef = {\n focus(): void;\n blur(): void;\n clear(): void;\n};\n\nconst KitsInputTextarea = forwardRef<\n NativeTextareaRef,\n IKitsInputTextarea\n>((rawProps, ref) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Textarea', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n /*\n * ⛔ THE TYPED TEXT HAD NO COLOUR OF ITS OWN — found on AlphaMatch's\n * offer composer, 22 Sep 2026: near-black on a dark field while typing.\n * `resolvedRootStyle`/`resolvedThemeStyle` DO carry `color: 'text'`, but\n * that lands on the outer `<Textarea>` wrapper, which is a View — RN does\n * not propagate `color` from a View into a nested TextInput's own text\n * rendering. `<TextareaInput>` is the actual RN TextInput and needs the\n * colour on ITS OWN style, the same way InputText's shared Field.tsx\n * always does (`color: resolveThemeTokenForNative('text')`).\n */\n const { resolveToken } = useKitsTheme();\n const resolvedRootColor =\n (resolvedRootStyle as any)?.color ?? (resolvedThemeStyle as any)?.color;\n const valueColor =\n typeof resolvedRootColor === \"string\" && resolvedRootColor.length > 0\n ? resolvedRootColor\n : resolveToken('text');\n const {\n id,\n label,\n value,\n defaultValue,\n onChange,\n keyFilter,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n inputSize,\n containerStyle,\n localProps,\n keyboardNavId,\n rows,\n autoResize,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n // Props that belong on the inner TextareaInput, not the outer wrapper.\n // Spreading nativeProps onto <Textarea> silently drops them because the\n // wrapper doesn't render text. Pull them out and forward explicitly so\n // placeholder, autoCapitalize, autoCorrect etc. actually take effect.\n placeholder,\n placeholderTextColor,\n autoCapitalize,\n autoCorrect,\n autoFocus,\n returnKeyType,\n ...rest\n } = props as IKitsInputTextarea & {\n placeholder?: string;\n placeholderTextColor?: string;\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n autoCorrect?: boolean;\n autoFocus?: boolean;\n returnKeyType?: string;\n };\n\n const resolvedKeyboardType = keyboardTypeFromKeyFilter(keyFilter as any);\n\n // Calculate height from rows: lineHeight × rows + vertical padding\n const LINE_HEIGHT = 20;\n const VERTICAL_PADDING = 16;\n const calculatedHeight = rows ? (LINE_HEIGHT * rows) + VERTICAL_PADDING : undefined;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n const isControlled = value !== undefined;\n\n const { cssProps, nativeProps } = useSeparator<any>({\n ...(rest as any),\n ...(localProps as any),\n });\n\n const fieldRef = useRef<any>(null);\n\n /** internal state for uncontrolled mode */\n const [internalValue, setInternalValue] = useState<string>(\n () => String(defaultValue ?? \"\")\n );\n\n /** sync when controlled */\n useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n useImperativeHandle(ref, () => ({\n focus: () => fieldRef.current?.focus?.(),\n blur: () => fieldRef.current?.blur?.(),\n clear: () => {\n if (!isControlled) setInternalValue(\"\");\n onChange?.({ target: { value: \"\" } } as any);\n },\n }));\n\n const handleChangeText = useCallback(\n (nextRaw: string) => {\n const prev = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilter(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n // Prime-like event\n onChange?.({ target: { value: filtered } } as any);\n },\n [keyFilter, onChange, isControlled, internalValue, value],\n );\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n invalid={invalid}\n label={label}\n hideError={hideError}\n disabled={disabled}\n inputSize={inputSize}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n <Textarea\n size={inputSize ?? \"md\"}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n ...(cssProps as any),\n ...(calculatedHeight ? {height: calculatedHeight, minHeight: calculatedHeight} : {}),\n }}\n {...nativeProps}\n >\n <TextareaInput\n ref={mergeRefs(inputRef, fieldRef)}\n value={displayValue}\n onChangeText={handleChangeText}\n editable={!disabled}\n numberOfLines={rows ?? 4}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n textAlignVertical=\"top\"\n // Forward input-level props that were destructured off `props`\n // — these would never reach the inner input if we relied on\n // `nativeProps` because nativeProps is spread on the outer\n // <Textarea> wrapper, which doesn't render text.\n placeholder={placeholder}\n placeholderTextColor={placeholderTextColor}\n autoCapitalize={autoCapitalize}\n autoCorrect={autoCorrect}\n autoFocus={autoFocus}\n returnKeyType={returnKeyType as any}\n // Inline padding so the cursor isn't flush against the edge\n // when the consumer overrides height via `rows`. Without\n // this the height inline-style replaces Gluestack's default\n // padding and the caret renders at (0,0) of the textarea.\n style={{\n paddingHorizontal: 12,\n paddingVertical: 8,\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n color: valueColor,\n // ...(calculatedHeight ? {height: calculatedHeight - VERTICAL_PADDING} : {}),\n }}\n {...navProps}\n />\n </Textarea>\n </KitsContainer>\n );\n});\n\nKitsInputTextarea.displayName = \"KitsInputTextarea\";\nexport default KitsInputTextarea;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputTextarea/index.native.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport type { IKitsInputTextarea } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { useSeparator } from \"../../../factory\";\nimport { applyKeyFilter } from \"../InputText/keyFilter.native\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\n\n// ✅ correct Gluestack components\nimport {\n Textarea,\n TextareaInput,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\n\ntype NativeTextareaRef = {\n focus(): void;\n blur(): void;\n clear(): void;\n};\n\nconst KitsInputTextarea = forwardRef<\n NativeTextareaRef,\n IKitsInputTextarea\n>((rawProps, ref) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Textarea', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n /*\n * ⛔ THE TYPED TEXT HAD NO COLOUR OF ITS OWN — found on AlphaMatch's\n * offer composer, 22 Sep 2026: near-black on a dark field while typing.\n * `resolvedRootStyle`/`resolvedThemeStyle` DO carry `color: 'text'`, but\n * that lands on the outer `<Textarea>` wrapper, which is a View — RN does\n * not propagate `color` from a View into a nested TextInput's own text\n * rendering. `<TextareaInput>` is the actual RN TextInput and needs the\n * colour on ITS OWN style, the same way InputText's shared Field.tsx\n * always does (`color: resolveThemeTokenForNative('text')`).\n */\n const { resolveToken } = useKitsTheme();\n const resolvedRootColor =\n (resolvedRootStyle as any)?.color ?? (resolvedThemeStyle as any)?.color;\n const valueColor =\n typeof resolvedRootColor === \"string\" && resolvedRootColor.length > 0\n ? resolvedRootColor\n : resolveToken('text');\n const {\n id,\n label,\n value,\n defaultValue,\n onChange,\n keyFilter,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n inputSize,\n containerStyle,\n localProps,\n keyboardNavId,\n rows,\n autoResize,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n // Props that belong on the inner TextareaInput, not the outer wrapper.\n // Spreading nativeProps onto <Textarea> silently drops them because the\n // wrapper doesn't render text. Pull them out and forward explicitly so\n // placeholder, autoCapitalize, autoCorrect etc. actually take effect.\n placeholder,\n placeholderTextColor,\n autoCapitalize,\n autoCorrect,\n autoFocus,\n returnKeyType,\n ...rest\n } = props as IKitsInputTextarea & {\n placeholder?: string;\n placeholderTextColor?: string;\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n autoCorrect?: boolean;\n autoFocus?: boolean;\n returnKeyType?: string;\n };\n\n const resolvedKeyboardType = keyboardTypeFromKeyFilter(keyFilter as any);\n\n // Calculate height from rows: lineHeight × rows + vertical padding\n const LINE_HEIGHT = 20;\n const VERTICAL_PADDING = 16;\n const calculatedHeight = rows ? (LINE_HEIGHT * rows) + VERTICAL_PADDING : undefined;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n const isControlled = value !== undefined;\n\n const { cssProps, nativeProps } = useSeparator<any>({\n ...(rest as any),\n ...(localProps as any),\n });\n\n const fieldRef = useRef<any>(null);\n\n /** internal state for uncontrolled mode */\n const [internalValue, setInternalValue] = useState<string>(\n () => String(defaultValue ?? \"\")\n );\n\n /** sync when controlled */\n useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n useImperativeHandle(ref, () => ({\n focus: () => fieldRef.current?.focus?.(),\n blur: () => fieldRef.current?.blur?.(),\n clear: () => {\n if (!isControlled) setInternalValue(\"\");\n onChange?.({ target: { value: \"\" } } as any);\n },\n }));\n\n const handleChangeText = useCallback(\n (nextRaw: string) => {\n const prev = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilter(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n // Prime-like event\n onChange?.({ target: { value: filtered } } as any);\n },\n [keyFilter, onChange, isControlled, internalValue, value],\n );\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n invalid={invalid}\n label={label}\n hideError={hideError}\n disabled={disabled}\n inputSize={inputSize}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n <Textarea\n size={inputSize ?? \"md\"}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n ...(cssProps as any),\n ...(calculatedHeight ? {height: calculatedHeight, minHeight: calculatedHeight} : {}),\n }}\n {...nativeProps}\n >\n <TextareaInput\n ref={mergeRefs(inputRef, fieldRef)}\n value={displayValue}\n onChangeText={handleChangeText}\n editable={!disabled}\n numberOfLines={rows ?? 4}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n textAlignVertical=\"top\"\n // Forward input-level props that were destructured off `props`\n // — these would never reach the inner input if we relied on\n // `nativeProps` because nativeProps is spread on the outer\n // <Textarea> wrapper, which doesn't render text.\n placeholder={placeholder}\n placeholderTextColor={placeholderTextColor}\n autoCapitalize={autoCapitalize}\n autoCorrect={autoCorrect}\n autoFocus={autoFocus}\n returnKeyType={returnKeyType as any}\n // Inline padding so the cursor isn't flush against the edge\n // when the consumer overrides height via `rows`. Without\n // this the height inline-style replaces Gluestack's default\n // padding and the caret renders at (0,0) of the textarea.\n style={{\n paddingHorizontal: 12,\n paddingVertical: 8,\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n color: valueColor,\n // ...(calculatedHeight ? {height: calculatedHeight - VERTICAL_PADDING} : {}),\n }}\n {...navProps}\n />\n </Textarea>\n </KitsContainer>\n );\n});\n\nKitsInputTextarea.displayName = \"KitsInputTextarea\";\nexport default KitsInputTextarea;\n"],"names":[],"mappings":"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"}
@@ -89,6 +89,7 @@ var usePhoneInput = require('./usePhoneInput.cjs');
89
89
  var Svg = require('react-native-svg');
90
90
  require('../../../contexts/DialogContext.cjs');
91
91
  require('../../../contexts/PermissionsContext.cjs');
92
+ require('../../../contexts/BreadcrumbContext.cjs');
92
93
  var useComponentDefaults = require('../../../hooks/useComponentDefaults.cjs');
93
94
  var useResolvedStyle = require('../../../hooks/useResolvedStyle.cjs');
94
95
  var index_native = require('../../../primitives/Icon/index.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/PhoneInput/index.native.tsx"],"sourcesContent":["import type {IKitsPhoneInput} from \"@lmb-it/kitsconcerto-types\";\nimport {KitsContainer, KitsInputText, Icon} from \"../../../_compat\";\nimport {useImperativeHandle, useMemo} from \"react\";\nimport {useSeparator} from \"../../../factory\";\nimport {usePhoneInput} from \"./usePhoneInput\";\nimport {SvgUri} from \"react-native-svg\";\nimport {View} from \"react-native\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\n\n\nconst KitsPhoneComponent =\n (\n {\n ref,\n isWithCountryCode,\n label,\n value,\n placeholder,\n onChange,\n invalid,\n disabled,\n required,\n errors,\n hideError,\n id,\n defaultCountry,\n inputSize,\n isFloatedLabel,\n leftAddon,\n rightAddon,\n includedCountries,\n excludedCountries,\n outputFormat='string',\n ...props\n }: IKitsPhoneInput\n ) => {\n const { mergedProps: _mergedProps, themeStyle, elementStyles } = useComponentDefaults('PhoneInput', props as any, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {nativeProps} = useSeparator<any>(props);\n\n const {\n displayValue,\n e164Value,\n objectValue,\n countryFlagUrl,\n countryISO,\n handleChange,\n } = usePhoneInput({\n value,\n onChange,\n outputFormat,\n isWithCountryCode,\n defaultCountry,\n includedCountries,\n excludedCountries,\n });\n\n useImperativeHandle(ref, () => ({\n value: outputFormat === 'object' ? (objectValue ?? e164Value) : e164Value,\n setValue: (v: any) => handleChange(typeof v === \"string\" ? v : \"\"),\n }));\n\n const flagAddon = useMemo(() => {\n if (!isWithCountryCode) return leftAddon;\n\n if (countryFlagUrl) {\n return (\n <View style={{width: 20, height: 20, overflow: 'hidden', borderRadius: 2}}>\n <SvgUri\n uri={countryFlagUrl}\n width={20}\n height={20}\n />\n </View>\n );\n }\n\n return <Icon name=\"phone\" size={'2xs'}/>;\n }, [isWithCountryCode, countryFlagUrl, countryISO, leftAddon]);\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n required={required}\n hideError={hideError}\n label={label}\n elementStyles={elementStyles}\n >\n <KitsInputText\n id={`${id}-phone`}\n keyboardNavId={id}\n value={displayValue}\n rightAddon={rightAddon}\n leftAddon={flagAddon}\n onChange={(e: any) => handleChange(e.target.value)}\n invalid={invalid}\n disabled={disabled}\n keyboardType=\"phone-pad\"\n placeholder={placeholder ?? (isWithCountryCode ? \"+1 (555) 123-4567\" : \"\")}\n localProps={Object.keys(themeStyle).length ? { style: { width: '100%', ...(themeStyle as any) } } : undefined}\n />\n </KitsContainer>\n );\n }\n\n\nexport default KitsPhoneComponent;\n"],"names":["useComponentDefaults","useResolvedStyle","useSeparator","usePhoneInput","useImperativeHandle","useMemo","jsx","View","SvgUri","Icon","KitsContainer","KitsInputText"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/PhoneInput/index.native.tsx"],"sourcesContent":["import type {IKitsPhoneInput} from \"@lmb-it/kitsconcerto-types\";\nimport {KitsContainer, KitsInputText, Icon} from \"../../../_compat\";\nimport {useImperativeHandle, useMemo} from \"react\";\nimport {useSeparator} from \"../../../factory\";\nimport {usePhoneInput} from \"./usePhoneInput\";\nimport {SvgUri} from \"react-native-svg\";\nimport {View} from \"react-native\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\n\n\nconst KitsPhoneComponent =\n (\n {\n ref,\n isWithCountryCode,\n label,\n value,\n placeholder,\n onChange,\n invalid,\n disabled,\n required,\n errors,\n hideError,\n id,\n defaultCountry,\n inputSize,\n isFloatedLabel,\n leftAddon,\n rightAddon,\n includedCountries,\n excludedCountries,\n outputFormat='string',\n ...props\n }: IKitsPhoneInput\n ) => {\n const { mergedProps: _mergedProps, themeStyle, elementStyles } = useComponentDefaults('PhoneInput', props as any, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {nativeProps} = useSeparator<any>(props);\n\n const {\n displayValue,\n e164Value,\n objectValue,\n countryFlagUrl,\n countryISO,\n handleChange,\n } = usePhoneInput({\n value,\n onChange,\n outputFormat,\n isWithCountryCode,\n defaultCountry,\n includedCountries,\n excludedCountries,\n });\n\n useImperativeHandle(ref, () => ({\n value: outputFormat === 'object' ? (objectValue ?? e164Value) : e164Value,\n setValue: (v: any) => handleChange(typeof v === \"string\" ? v : \"\"),\n }));\n\n const flagAddon = useMemo(() => {\n if (!isWithCountryCode) return leftAddon;\n\n if (countryFlagUrl) {\n return (\n <View style={{width: 20, height: 20, overflow: 'hidden', borderRadius: 2}}>\n <SvgUri\n uri={countryFlagUrl}\n width={20}\n height={20}\n />\n </View>\n );\n }\n\n return <Icon name=\"phone\" size={'2xs'}/>;\n }, [isWithCountryCode, countryFlagUrl, countryISO, leftAddon]);\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n required={required}\n hideError={hideError}\n label={label}\n elementStyles={elementStyles}\n >\n <KitsInputText\n id={`${id}-phone`}\n keyboardNavId={id}\n value={displayValue}\n rightAddon={rightAddon}\n leftAddon={flagAddon}\n onChange={(e: any) => handleChange(e.target.value)}\n invalid={invalid}\n disabled={disabled}\n keyboardType=\"phone-pad\"\n placeholder={placeholder ?? (isWithCountryCode ? \"+1 (555) 123-4567\" : \"\")}\n localProps={Object.keys(themeStyle).length ? { style: { width: '100%', ...(themeStyle as any) } } : undefined}\n />\n </KitsContainer>\n );\n }\n\n\nexport default KitsPhoneComponent;\n"],"names":["useComponentDefaults","useResolvedStyle","useSeparator","usePhoneInput","useImperativeHandle","useMemo","jsx","View","SvgUri","Icon","KitsContainer","KitsInputText"],"mappings":"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"}
@@ -85,6 +85,7 @@ import { usePhoneInput } from './usePhoneInput.js';
85
85
  import { SvgUri } from 'react-native-svg';
86
86
  import '../../../contexts/DialogContext.js';
87
87
  import '../../../contexts/PermissionsContext.js';
88
+ import '../../../contexts/BreadcrumbContext.js';
88
89
  import useComponentDefaults from '../../../hooks/useComponentDefaults.js';
89
90
  import useResolvedStyle from '../../../hooks/useResolvedStyle.js';
90
91
  import { Icon } from '../../../primitives/Icon/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/PhoneInput/index.native.tsx"],"sourcesContent":["import type {IKitsPhoneInput} from \"@lmb-it/kitsconcerto-types\";\nimport {KitsContainer, KitsInputText, Icon} from \"../../../_compat\";\nimport {useImperativeHandle, useMemo} from \"react\";\nimport {useSeparator} from \"../../../factory\";\nimport {usePhoneInput} from \"./usePhoneInput\";\nimport {SvgUri} from \"react-native-svg\";\nimport {View} from \"react-native\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\n\n\nconst KitsPhoneComponent =\n (\n {\n ref,\n isWithCountryCode,\n label,\n value,\n placeholder,\n onChange,\n invalid,\n disabled,\n required,\n errors,\n hideError,\n id,\n defaultCountry,\n inputSize,\n isFloatedLabel,\n leftAddon,\n rightAddon,\n includedCountries,\n excludedCountries,\n outputFormat='string',\n ...props\n }: IKitsPhoneInput\n ) => {\n const { mergedProps: _mergedProps, themeStyle, elementStyles } = useComponentDefaults('PhoneInput', props as any, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {nativeProps} = useSeparator<any>(props);\n\n const {\n displayValue,\n e164Value,\n objectValue,\n countryFlagUrl,\n countryISO,\n handleChange,\n } = usePhoneInput({\n value,\n onChange,\n outputFormat,\n isWithCountryCode,\n defaultCountry,\n includedCountries,\n excludedCountries,\n });\n\n useImperativeHandle(ref, () => ({\n value: outputFormat === 'object' ? (objectValue ?? e164Value) : e164Value,\n setValue: (v: any) => handleChange(typeof v === \"string\" ? v : \"\"),\n }));\n\n const flagAddon = useMemo(() => {\n if (!isWithCountryCode) return leftAddon;\n\n if (countryFlagUrl) {\n return (\n <View style={{width: 20, height: 20, overflow: 'hidden', borderRadius: 2}}>\n <SvgUri\n uri={countryFlagUrl}\n width={20}\n height={20}\n />\n </View>\n );\n }\n\n return <Icon name=\"phone\" size={'2xs'}/>;\n }, [isWithCountryCode, countryFlagUrl, countryISO, leftAddon]);\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n required={required}\n hideError={hideError}\n label={label}\n elementStyles={elementStyles}\n >\n <KitsInputText\n id={`${id}-phone`}\n keyboardNavId={id}\n value={displayValue}\n rightAddon={rightAddon}\n leftAddon={flagAddon}\n onChange={(e: any) => handleChange(e.target.value)}\n invalid={invalid}\n disabled={disabled}\n keyboardType=\"phone-pad\"\n placeholder={placeholder ?? (isWithCountryCode ? \"+1 (555) 123-4567\" : \"\")}\n localProps={Object.keys(themeStyle).length ? { style: { width: '100%', ...(themeStyle as any) } } : undefined}\n />\n </KitsContainer>\n );\n }\n\n\nexport default KitsPhoneComponent;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,qBACF,CACI;AAAA,EACI,GAAA;AAAA,EACA,iBAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,EAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,YAAA,GAAa,QAAA;AAAA,EACb,GAAG;AACP,CAAA,KACC;AACD,EAAA,MAAM,EAAE,aAAa,YAAA,EAAc,UAAA,EAAY,eAAc,GAAI,oBAAA,CAAqB,YAAA,EAAc,KAAA,EAAc,OAAO,CAAA;AACzH,EAA2B,iBAAiB,UAAU;AACtD,EAA0B,gBAAA,CAAiB,aAAA,EAAe,IAAA,IAAQ,EAAE;AACpE,EAAsB,YAAA,CAAkB,KAAK;AAE7C,EAAA,MAAM;AAAA,IACF,YAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA,cAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,MACA,aAAA,CAAc;AAAA,IACd,KAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,iBAAA;AAAA,IACA,cAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACH,CAAA;AAED,EAAA,mBAAA,CAAoB,KAAK,OAAO;AAAA,IAC5B,KAAA,EAAO,YAAA,KAAiB,QAAA,GAAY,WAAA,IAAe,SAAA,GAAa,SAAA;AAAA,IAChE,QAAA,EAAU,CAAC,CAAA,KAAW,YAAA,CAAa,OAAO,CAAA,KAAM,QAAA,GAAW,IAAI,EAAE;AAAA,GACrE,CAAE,CAAA;AAEF,EAAA,MAAM,SAAA,GAAY,QAAQ,MAAM;AAC5B,IAAA,IAAI,CAAC,mBAAmB,OAAO,SAAA;AAE/B,IAAA,IAAI,cAAA,EAAgB;AAChB,MAAA,uBACI,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAO,EAAC,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,QAAA,EAAU,QAAA,EAAU,YAAA,EAAc,CAAA,EAAC,EACpE,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACG,GAAA,EAAK,cAAA;AAAA,UACL,KAAA,EAAO,EAAA;AAAA,UACP,MAAA,EAAQ;AAAA;AAAA,OACZ,EACJ,CAAA;AAAA,IAER;AAEA,IAAA,uBAAO,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,OAAA,EAAQ,MAAM,KAAA,EAAM,CAAA;AAAA,EAC1C,GAAG,CAAC,iBAAA,EAAmB,cAAA,EAAgB,UAAA,EAAY,SAAS,CAAC,CAAA;AAE7D,EAAA,uBACI,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACG,EAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,aAAA;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACG,EAAA,EAAI,GAAG,EAAE,CAAA,MAAA,CAAA;AAAA,UACT,aAAA,EAAe,EAAA;AAAA,UACf,KAAA,EAAO,YAAA;AAAA,UACP,UAAA;AAAA,UACA,SAAA,EAAW,SAAA;AAAA,UACX,UAAU,CAAC,CAAA,KAAW,YAAA,CAAa,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,UACjD,OAAA;AAAA,UACA,QAAA;AAAA,UACA,YAAA,EAAa,WAAA;AAAA,UACb,WAAA,EAAa,WAAA,KAAgB,iBAAA,GAAoB,mBAAA,GAAsB,EAAA,CAAA;AAAA,UACvE,UAAA,EAAY,MAAA,CAAO,IAAA,CAAK,UAAU,EAAE,MAAA,GAAS,EAAE,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,GAAI,UAAA,IAAqB,GAAI;AAAA;AAAA;AACxG;AAAA,GACJ;AAER;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/PhoneInput/index.native.tsx"],"sourcesContent":["import type {IKitsPhoneInput} from \"@lmb-it/kitsconcerto-types\";\nimport {KitsContainer, KitsInputText, Icon} from \"../../../_compat\";\nimport {useImperativeHandle, useMemo} from \"react\";\nimport {useSeparator} from \"../../../factory\";\nimport {usePhoneInput} from \"./usePhoneInput\";\nimport {SvgUri} from \"react-native-svg\";\nimport {View} from \"react-native\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\n\n\nconst KitsPhoneComponent =\n (\n {\n ref,\n isWithCountryCode,\n label,\n value,\n placeholder,\n onChange,\n invalid,\n disabled,\n required,\n errors,\n hideError,\n id,\n defaultCountry,\n inputSize,\n isFloatedLabel,\n leftAddon,\n rightAddon,\n includedCountries,\n excludedCountries,\n outputFormat='string',\n ...props\n }: IKitsPhoneInput\n ) => {\n const { mergedProps: _mergedProps, themeStyle, elementStyles } = useComponentDefaults('PhoneInput', props as any, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {nativeProps} = useSeparator<any>(props);\n\n const {\n displayValue,\n e164Value,\n objectValue,\n countryFlagUrl,\n countryISO,\n handleChange,\n } = usePhoneInput({\n value,\n onChange,\n outputFormat,\n isWithCountryCode,\n defaultCountry,\n includedCountries,\n excludedCountries,\n });\n\n useImperativeHandle(ref, () => ({\n value: outputFormat === 'object' ? (objectValue ?? e164Value) : e164Value,\n setValue: (v: any) => handleChange(typeof v === \"string\" ? v : \"\"),\n }));\n\n const flagAddon = useMemo(() => {\n if (!isWithCountryCode) return leftAddon;\n\n if (countryFlagUrl) {\n return (\n <View style={{width: 20, height: 20, overflow: 'hidden', borderRadius: 2}}>\n <SvgUri\n uri={countryFlagUrl}\n width={20}\n height={20}\n />\n </View>\n );\n }\n\n return <Icon name=\"phone\" size={'2xs'}/>;\n }, [isWithCountryCode, countryFlagUrl, countryISO, leftAddon]);\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n required={required}\n hideError={hideError}\n label={label}\n elementStyles={elementStyles}\n >\n <KitsInputText\n id={`${id}-phone`}\n keyboardNavId={id}\n value={displayValue}\n rightAddon={rightAddon}\n leftAddon={flagAddon}\n onChange={(e: any) => handleChange(e.target.value)}\n invalid={invalid}\n disabled={disabled}\n keyboardType=\"phone-pad\"\n placeholder={placeholder ?? (isWithCountryCode ? \"+1 (555) 123-4567\" : \"\")}\n localProps={Object.keys(themeStyle).length ? { style: { width: '100%', ...(themeStyle as any) } } : undefined}\n />\n </KitsContainer>\n );\n }\n\n\nexport default KitsPhoneComponent;\n"],"names":[],"mappings":"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"}
@@ -89,6 +89,7 @@ require('../../../apps/mobile/src/Core/Input/Slot.cjs');
89
89
  var useAutoCompleteLogic = require('../hooks/useAutoCompleteLogic.cjs');
90
90
  require('../../../contexts/DialogContext.cjs');
91
91
  require('../../../contexts/PermissionsContext.cjs');
92
+ require('../../../contexts/BreadcrumbContext.cjs');
92
93
  var useComponentDefaults = require('../../../hooks/useComponentDefaults.cjs');
93
94
  var useResolvedStyle = require('../../../hooks/useResolvedStyle.cjs');
94
95
  var KitsThemeProvider_native = require('../../../contexts/Theme/KitsThemeProvider.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/selects/AutoComplete/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {AutoComplete, useSeparator} from \"@lmb-it/kitsconcertomobile\";\nimport type { IAutoCompleteElement } from \"@lmb-it/kitsconcerto-types\";\nimport { useAutoCompleteLogic } from \"../hooks/useAutoCompleteLogic\";\nimport { useComponentDefaults, useResolvedStyle } from \"../../../hooks\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\n\nconst KitsAutoComplete = ({ ref, ...rawProps }: IAutoCompleteElement) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('AutoComplete', rawProps, 'Select');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {\n id,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n label,\n hideError,\n disabled,\n required,\n isFloatedLabel,\n inputSize = \"md\",\n forceSelection,\n completeMethod,\n helperText,\n withArrow,\n placeholder,\n isMultiple,\n localProps,\n delay,\n minLength,\n selectionLimit,\n showEmptyMessage,\n emptyMessage,\n attached,\n containerStyle,\n } = props;\n\n const { nativeProps } = useSeparator<HTMLSelectElement>(props);\n\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('border');\n\n const {\n inputValue,\n setInputValue,\n filteredList,\n search,\n handleOnChange,\n list,\n childrenKey,\n labelKey,\n } = useAutoCompleteLogic({ isMultiple, forceSelection, completeMethod, ref });\n\n const hasThemeStyle = Object.keys(themeStyle).length > 0;\n\n\n const Element = <AutoComplete\n disabled={disabled}\n placeholder={placeholder}\n value={inputValue}\n forceSelection={forceSelection}\n suggestions={Array.isArray(filteredList) ? filteredList : list}\n completeMethod={search}\n dropdown={withArrow}\n multiple={isMultiple}\n field={labelKey}\n invalid={!!invalid}\n emptyMessage={emptyMessage ?? \"No results found\"}\n {...(delay != null ? { delay } : {})}\n {...(minLength != null ? { minLength } : {})}\n {...(selectionLimit != null ? { selectionLimit } : {})}\n showEmptyMessage={showEmptyMessage ?? true}\n optionGroupChildren={childrenKey ?? undefined}\n optionGroupLabel={childrenKey ? labelKey : undefined}\n style={{ width: \"100%\", borderRadius: 0, border:'none', backgroundColor:'transparent' }}\n inputStyle={{ flexDirection: \"row\", borderRadius: 0, border:'none', width: \"100%\",backgroundColor:'transparent', ...(resolvedRootStyle || resolvedThemeStyle) }}\n onChange={(event) => {\n setInputValue(event.value);\n handleOnChange(event);\n }}\n {...(localProps ?? {})}\n />\n\n if (attached) {\n return Element;\n }\n\n // KitsContainer's `inputGroup` wrapper defaults to `overflow: 'hidden'`\n // (so rounded borders clip the input cleanly). For AutoComplete that\n // would clip the floating suggestions panel back to the input's bounds\n // — the panel renders but is invisible, which is the \"list never\n // appears\" symptom on mobile. Force `overflow: 'visible'` on the\n // container chain so the panel can escape.\n const overflowEscape = {\n ...elementStyles,\n container: {\n ...(elementStyles?.container || {}),\n overflow: 'visible' as const,\n },\n inputGroup: {\n ...(elementStyles?.inputGroup || {}),\n overflow: 'visible' as const,\n },\n };\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n hideError={hideError}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={overflowEscape}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsAutoComplete;\n"],"names":["useComponentDefaults","useResolvedStyle","useSeparator","useKitsTheme","useAutoCompleteLogic","jsx","AutoComplete","KitsContainer"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/selects/AutoComplete/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {AutoComplete, useSeparator} from \"@lmb-it/kitsconcertomobile\";\nimport type { IAutoCompleteElement } from \"@lmb-it/kitsconcerto-types\";\nimport { useAutoCompleteLogic } from \"../hooks/useAutoCompleteLogic\";\nimport { useComponentDefaults, useResolvedStyle } from \"../../../hooks\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\n\nconst KitsAutoComplete = ({ ref, ...rawProps }: IAutoCompleteElement) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('AutoComplete', rawProps, 'Select');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {\n id,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n label,\n hideError,\n disabled,\n required,\n isFloatedLabel,\n inputSize = \"md\",\n forceSelection,\n completeMethod,\n helperText,\n withArrow,\n placeholder,\n isMultiple,\n localProps,\n delay,\n minLength,\n selectionLimit,\n showEmptyMessage,\n emptyMessage,\n attached,\n containerStyle,\n } = props;\n\n const { nativeProps } = useSeparator<HTMLSelectElement>(props);\n\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('border');\n\n const {\n inputValue,\n setInputValue,\n filteredList,\n search,\n handleOnChange,\n list,\n childrenKey,\n labelKey,\n } = useAutoCompleteLogic({ isMultiple, forceSelection, completeMethod, ref });\n\n const hasThemeStyle = Object.keys(themeStyle).length > 0;\n\n\n const Element = <AutoComplete\n disabled={disabled}\n placeholder={placeholder}\n value={inputValue}\n forceSelection={forceSelection}\n suggestions={Array.isArray(filteredList) ? filteredList : list}\n completeMethod={search}\n dropdown={withArrow}\n multiple={isMultiple}\n field={labelKey}\n invalid={!!invalid}\n emptyMessage={emptyMessage ?? \"No results found\"}\n {...(delay != null ? { delay } : {})}\n {...(minLength != null ? { minLength } : {})}\n {...(selectionLimit != null ? { selectionLimit } : {})}\n showEmptyMessage={showEmptyMessage ?? true}\n optionGroupChildren={childrenKey ?? undefined}\n optionGroupLabel={childrenKey ? labelKey : undefined}\n style={{ width: \"100%\", borderRadius: 0, border:'none', backgroundColor:'transparent' }}\n inputStyle={{ flexDirection: \"row\", borderRadius: 0, border:'none', width: \"100%\",backgroundColor:'transparent', ...(resolvedRootStyle || resolvedThemeStyle) }}\n onChange={(event) => {\n setInputValue(event.value);\n handleOnChange(event);\n }}\n {...(localProps ?? {})}\n />\n\n if (attached) {\n return Element;\n }\n\n // KitsContainer's `inputGroup` wrapper defaults to `overflow: 'hidden'`\n // (so rounded borders clip the input cleanly). For AutoComplete that\n // would clip the floating suggestions panel back to the input's bounds\n // — the panel renders but is invisible, which is the \"list never\n // appears\" symptom on mobile. Force `overflow: 'visible'` on the\n // container chain so the panel can escape.\n const overflowEscape = {\n ...elementStyles,\n container: {\n ...(elementStyles?.container || {}),\n overflow: 'visible' as const,\n },\n inputGroup: {\n ...(elementStyles?.inputGroup || {}),\n overflow: 'visible' as const,\n },\n };\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n hideError={hideError}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={overflowEscape}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsAutoComplete;\n"],"names":["useComponentDefaults","useResolvedStyle","useSeparator","useKitsTheme","useAutoCompleteLogic","jsx","AutoComplete","KitsContainer"],"mappings":"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"}
@@ -85,6 +85,7 @@ import '../../../apps/mobile/src/Core/Input/Slot.js';
85
85
  import { useAutoCompleteLogic } from '../hooks/useAutoCompleteLogic.js';
86
86
  import '../../../contexts/DialogContext.js';
87
87
  import '../../../contexts/PermissionsContext.js';
88
+ import '../../../contexts/BreadcrumbContext.js';
88
89
  import useComponentDefaults from '../../../hooks/useComponentDefaults.js';
89
90
  import useResolvedStyle from '../../../hooks/useResolvedStyle.js';
90
91
  import { useKitsTheme } from '../../../contexts/Theme/KitsThemeProvider.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/selects/AutoComplete/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {AutoComplete, useSeparator} from \"@lmb-it/kitsconcertomobile\";\nimport type { IAutoCompleteElement } from \"@lmb-it/kitsconcerto-types\";\nimport { useAutoCompleteLogic } from \"../hooks/useAutoCompleteLogic\";\nimport { useComponentDefaults, useResolvedStyle } from \"../../../hooks\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\n\nconst KitsAutoComplete = ({ ref, ...rawProps }: IAutoCompleteElement) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('AutoComplete', rawProps, 'Select');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {\n id,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n label,\n hideError,\n disabled,\n required,\n isFloatedLabel,\n inputSize = \"md\",\n forceSelection,\n completeMethod,\n helperText,\n withArrow,\n placeholder,\n isMultiple,\n localProps,\n delay,\n minLength,\n selectionLimit,\n showEmptyMessage,\n emptyMessage,\n attached,\n containerStyle,\n } = props;\n\n const { nativeProps } = useSeparator<HTMLSelectElement>(props);\n\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('border');\n\n const {\n inputValue,\n setInputValue,\n filteredList,\n search,\n handleOnChange,\n list,\n childrenKey,\n labelKey,\n } = useAutoCompleteLogic({ isMultiple, forceSelection, completeMethod, ref });\n\n const hasThemeStyle = Object.keys(themeStyle).length > 0;\n\n\n const Element = <AutoComplete\n disabled={disabled}\n placeholder={placeholder}\n value={inputValue}\n forceSelection={forceSelection}\n suggestions={Array.isArray(filteredList) ? filteredList : list}\n completeMethod={search}\n dropdown={withArrow}\n multiple={isMultiple}\n field={labelKey}\n invalid={!!invalid}\n emptyMessage={emptyMessage ?? \"No results found\"}\n {...(delay != null ? { delay } : {})}\n {...(minLength != null ? { minLength } : {})}\n {...(selectionLimit != null ? { selectionLimit } : {})}\n showEmptyMessage={showEmptyMessage ?? true}\n optionGroupChildren={childrenKey ?? undefined}\n optionGroupLabel={childrenKey ? labelKey : undefined}\n style={{ width: \"100%\", borderRadius: 0, border:'none', backgroundColor:'transparent' }}\n inputStyle={{ flexDirection: \"row\", borderRadius: 0, border:'none', width: \"100%\",backgroundColor:'transparent', ...(resolvedRootStyle || resolvedThemeStyle) }}\n onChange={(event) => {\n setInputValue(event.value);\n handleOnChange(event);\n }}\n {...(localProps ?? {})}\n />\n\n if (attached) {\n return Element;\n }\n\n // KitsContainer's `inputGroup` wrapper defaults to `overflow: 'hidden'`\n // (so rounded borders clip the input cleanly). For AutoComplete that\n // would clip the floating suggestions panel back to the input's bounds\n // — the panel renders but is invisible, which is the \"list never\n // appears\" symptom on mobile. Force `overflow: 'visible'` on the\n // container chain so the panel can escape.\n const overflowEscape = {\n ...elementStyles,\n container: {\n ...(elementStyles?.container || {}),\n overflow: 'visible' as const,\n },\n inputGroup: {\n ...(elementStyles?.inputGroup || {}),\n overflow: 'visible' as const,\n },\n };\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n hideError={hideError}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={overflowEscape}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsAutoComplete;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/selects/AutoComplete/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {AutoComplete, useSeparator} from \"@lmb-it/kitsconcertomobile\";\nimport type { IAutoCompleteElement } from \"@lmb-it/kitsconcerto-types\";\nimport { useAutoCompleteLogic } from \"../hooks/useAutoCompleteLogic\";\nimport { useComponentDefaults, useResolvedStyle } from \"../../../hooks\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\n\nconst KitsAutoComplete = ({ ref, ...rawProps }: IAutoCompleteElement) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('AutoComplete', rawProps, 'Select');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {\n id,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n label,\n hideError,\n disabled,\n required,\n isFloatedLabel,\n inputSize = \"md\",\n forceSelection,\n completeMethod,\n helperText,\n withArrow,\n placeholder,\n isMultiple,\n localProps,\n delay,\n minLength,\n selectionLimit,\n showEmptyMessage,\n emptyMessage,\n attached,\n containerStyle,\n } = props;\n\n const { nativeProps } = useSeparator<HTMLSelectElement>(props);\n\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('border');\n\n const {\n inputValue,\n setInputValue,\n filteredList,\n search,\n handleOnChange,\n list,\n childrenKey,\n labelKey,\n } = useAutoCompleteLogic({ isMultiple, forceSelection, completeMethod, ref });\n\n const hasThemeStyle = Object.keys(themeStyle).length > 0;\n\n\n const Element = <AutoComplete\n disabled={disabled}\n placeholder={placeholder}\n value={inputValue}\n forceSelection={forceSelection}\n suggestions={Array.isArray(filteredList) ? filteredList : list}\n completeMethod={search}\n dropdown={withArrow}\n multiple={isMultiple}\n field={labelKey}\n invalid={!!invalid}\n emptyMessage={emptyMessage ?? \"No results found\"}\n {...(delay != null ? { delay } : {})}\n {...(minLength != null ? { minLength } : {})}\n {...(selectionLimit != null ? { selectionLimit } : {})}\n showEmptyMessage={showEmptyMessage ?? true}\n optionGroupChildren={childrenKey ?? undefined}\n optionGroupLabel={childrenKey ? labelKey : undefined}\n style={{ width: \"100%\", borderRadius: 0, border:'none', backgroundColor:'transparent' }}\n inputStyle={{ flexDirection: \"row\", borderRadius: 0, border:'none', width: \"100%\",backgroundColor:'transparent', ...(resolvedRootStyle || resolvedThemeStyle) }}\n onChange={(event) => {\n setInputValue(event.value);\n handleOnChange(event);\n }}\n {...(localProps ?? {})}\n />\n\n if (attached) {\n return Element;\n }\n\n // KitsContainer's `inputGroup` wrapper defaults to `overflow: 'hidden'`\n // (so rounded borders clip the input cleanly). For AutoComplete that\n // would clip the floating suggestions panel back to the input's bounds\n // — the panel renders but is invisible, which is the \"list never\n // appears\" symptom on mobile. Force `overflow: 'visible'` on the\n // container chain so the panel can escape.\n const overflowEscape = {\n ...elementStyles,\n container: {\n ...(elementStyles?.container || {}),\n overflow: 'visible' as const,\n },\n inputGroup: {\n ...(elementStyles?.inputGroup || {}),\n overflow: 'visible' as const,\n },\n };\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n hideError={hideError}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={overflowEscape}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsAutoComplete;\n"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ var jsxRuntime = require('react/jsx-runtime');
6
6
  require('react');
7
7
  require('../../../contexts/DialogContext.cjs');
8
8
  require('../../../contexts/PermissionsContext.cjs');
9
+ require('../../../contexts/BreadcrumbContext.cjs');
9
10
  var useComponentDefaults = require('../../../hooks/useComponentDefaults.cjs');
10
11
  var index_native = require('../../../primitives/Text/index.cjs');
11
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/selects/CascadeSelect/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport { Text } from '../../../_compat';\nimport { useComponentDefaults } from \"@lmb-it/kitsconcerto/hooks\";\n\nconst KitsCascadeSelect = (rawProps: Record<string, any> = {}) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('CascadeSelect', rawProps, 'Select');\n return <Text>CascadeSelect is not yet available on native.</Text>;\n};\n\nexport default KitsCascadeSelect;\n"],"names":["useComponentDefaults","jsx","Text"],"mappings":";;;;;;;;;;;AAIA,MAAM,iBAAA,GAAoB,CAAC,QAAA,GAAgC,EAAC,KAAM;AAC9D,EAAA,MAAM,EAAE,aAAa,KAAA,EAAO,UAAA,EAAY,eAAc,GAAIA,4BAAA,CAAqB,eAAA,EAAiB,QAAA,EAAU,QAAQ,CAAA;AAClH,EAAA,uBAAOC,cAAA,CAACC,wBAAK,QAAA,EAAA,+CAAA,EAA6C,CAAA;AAC9D;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/selects/CascadeSelect/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport { Text } from '../../../_compat';\nimport { useComponentDefaults } from \"@lmb-it/kitsconcerto/hooks\";\n\nconst KitsCascadeSelect = (rawProps: Record<string, any> = {}) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('CascadeSelect', rawProps, 'Select');\n return <Text>CascadeSelect is not yet available on native.</Text>;\n};\n\nexport default KitsCascadeSelect;\n"],"names":["useComponentDefaults","jsx","Text"],"mappings":";;;;;;;;;;;;AAIA,MAAM,iBAAA,GAAoB,CAAC,QAAA,GAAgC,EAAC,KAAM;AAC9D,EAAA,MAAM,EAAE,aAAa,KAAA,EAAO,UAAA,EAAY,eAAc,GAAIA,4BAAA,CAAqB,eAAA,EAAiB,QAAA,EAAU,QAAQ,CAAA;AAClH,EAAA,uBAAOC,cAAA,CAACC,wBAAK,QAAA,EAAA,+CAAA,EAA6C,CAAA;AAC9D;;;;"}
@@ -2,6 +2,7 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import 'react';
3
3
  import '../../../contexts/DialogContext.js';
4
4
  import '../../../contexts/PermissionsContext.js';
5
+ import '../../../contexts/BreadcrumbContext.js';
5
6
  import useComponentDefaults from '../../../hooks/useComponentDefaults.js';
6
7
  import Text from '../../../primitives/Text/index.js';
7
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/selects/CascadeSelect/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport { Text } from '../../../_compat';\nimport { useComponentDefaults } from \"@lmb-it/kitsconcerto/hooks\";\n\nconst KitsCascadeSelect = (rawProps: Record<string, any> = {}) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('CascadeSelect', rawProps, 'Select');\n return <Text>CascadeSelect is not yet available on native.</Text>;\n};\n\nexport default KitsCascadeSelect;\n"],"names":[],"mappings":";;;;;;;AAIA,MAAM,iBAAA,GAAoB,CAAC,QAAA,GAAgC,EAAC,KAAM;AAC9D,EAAA,MAAM,EAAE,aAAa,KAAA,EAAO,UAAA,EAAY,eAAc,GAAI,oBAAA,CAAqB,eAAA,EAAiB,QAAA,EAAU,QAAQ,CAAA;AAClH,EAAA,uBAAO,GAAA,CAAC,QAAK,QAAA,EAAA,+CAAA,EAA6C,CAAA;AAC9D;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/selects/CascadeSelect/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport { Text } from '../../../_compat';\nimport { useComponentDefaults } from \"@lmb-it/kitsconcerto/hooks\";\n\nconst KitsCascadeSelect = (rawProps: Record<string, any> = {}) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('CascadeSelect', rawProps, 'Select');\n return <Text>CascadeSelect is not yet available on native.</Text>;\n};\n\nexport default KitsCascadeSelect;\n"],"names":[],"mappings":";;;;;;;;AAIA,MAAM,iBAAA,GAAoB,CAAC,QAAA,GAAgC,EAAC,KAAM;AAC9D,EAAA,MAAM,EAAE,aAAa,KAAA,EAAO,UAAA,EAAY,eAAc,GAAI,oBAAA,CAAqB,eAAA,EAAiB,QAAA,EAAU,QAAQ,CAAA;AAClH,EAAA,uBAAO,GAAA,CAAC,QAAK,QAAA,EAAA,+CAAA,EAA6C,CAAA;AAC9D;;;;"}
@@ -89,6 +89,7 @@ var useSelectBase = require('../hooks/useSelectBase.cjs');
89
89
  var locale = require('../../../hooks/locale.cjs');
90
90
  require('../../../contexts/DialogContext.cjs');
91
91
  require('../../../contexts/PermissionsContext.cjs');
92
+ require('../../../contexts/BreadcrumbContext.cjs');
92
93
  var useComponentDefaults = require('../../../hooks/useComponentDefaults.cjs');
93
94
  var useResolvedStyle = require('../../../hooks/useResolvedStyle.cjs');
94
95
  var useThemedFont = require('../../../hooks/useThemedFont.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/selects/Dropdown/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport { Dropdown } from \"@lmb-it/kitsconcertomobile\";\nimport type { IDropdownSelect } from \"@lmb-it/kitsconcerto-types\";\nimport { KitsContainer } from \"../../../_compat\";\nimport { ClHelper } from \"../../helpers/Functions\";\nimport { useSelectBase } from \"../hooks/useSelectBase\";\nimport {useComponentDefaults, useLanguage, useResolvedStyle} from \"../../../hooks\";\nimport SelectPopupOverlay from \"../helpers/SelectPopupOverlay\";\nimport useThemedFont from \"../../../hooks/useThemedFont\";\n\nconst KitsDropdown = ({ className, ref, ...rawProps }: IDropdownSelect) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('DropdownSelect', rawProps, 'Select');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {\n id,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n disabled,\n required,\n label,\n localProps,\n helperText,\n isFloatedLabel,\n withFilter,\n attached,\n inputSize,\n placeholder,\n hideError,\n virtualScroll,\n emptyFilterMessage,\n filterBy,\n loading,\n showClear,\n containerStyle,\n popup,\n } = props;\n\n const { list, keys, onChange, selectedValue } = useSelectBase();\n\n /* The panel's own copy. The native Dropdown lives in `apps/mobile`, which\n this package imports, so it cannot reach LocaleContext itself without a\n cycle between the two workspaces — the sentence is resolved here, where\n `useLanguage()` already is, and passed down as a prop.\n\n ⛔ `isRTL` is the READER's language, never `I18nManager.isRTL`. A\n consumer that forces RTL at boot keeps that process direction after the\n reader switches to English, and the filter field must follow the reader. */\n const { t, isRTL } = useLanguage();\n /* The face the consuming app's theme names for body text. React Native does\n not cascade fontFamily through Views, so the panel has to be told. */\n const bodyFont = useThemedFont('body');\n\n const ClState = ClHelper({\n inputSize: inputSize ?? \"\",\n isChecked: false,\n isInvalid: !!invalid,\n isDisabled: !!disabled,\n });\n\n const dropdownValue = selectedValue != null && typeof selectedValue !== 'object'\n ? selectedValue.toString()\n : selectedValue;\n\n const Element = (\n <Dropdown\n emptyFilterMessage={emptyFilterMessage ?? t('emptyFilterMessage')}\n filterPlaceholder={t('searchPlaceholder')}\n isRTL={isRTL}\n fontFamily={bodyFont}\n popup={popup}\n popupTitle={label ?? placeholder}\n /* The container is this library's own Dialog. It is injected rather\n than imported by the native Dropdown because that component lives\n in `apps/mobile`, which this package imports — the reverse import\n would be a cycle between the two workspaces. */\n renderPopup={({visible, onClose, title, children}: {\n visible: boolean;\n onClose: () => void;\n title?: React.ReactNode;\n children: React.ReactNode;\n }) => (\n <SelectPopupOverlay visible={visible} onClose={onClose} title={title}>\n {children}\n </SelectPopupOverlay>\n )}\n value={dropdownValue}\n placeholder={placeholder}\n options={Array.isArray(list) ? list : []}\n disabled={disabled}\n loading={loading}\n showClear={showClear ?? (!required && selectedValue != null)}\n style={{ width: '100%', height: attached ? '100%' : undefined, borderRadius: 0, ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle) }}\n onChange={onChange}\n {...keys}\n invalid={hideError && !!invalid}\n filter={!!withFilter}\n filterBy={filterBy ?? 'label'}\n virtualScrollerOptions={virtualScroll}\n className={`w-full ${className ?? ''} ${ClState}`}\n {...(localProps ? localProps : {})}\n />\n );\n\n if (attached) {\n return Element;\n }\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n hideError={hideError}\n errors={errors}\n helperText={helperText}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {Element}\n </KitsContainer>\n );\n}\nexport default KitsDropdown;\n"],"names":["useComponentDefaults","useResolvedStyle","useSelectBase","useLanguage","useThemedFont","ClHelper","jsx","Dropdown","SelectPopupOverlay","KitsContainer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,eAAe,CAAC,EAAE,WAAW,GAAA,EAAK,GAAG,UAAS,KAAuB;AACvE,EAAA,MAAM,EAAC,aAAa,KAAA,EAAO,UAAA,EAAY,eAAa,GAAIA,4BAAA,CAAqB,gBAAA,EAAkB,QAAA,EAAU,QAAQ,CAAA;AACjH,EAAA,MAAM,kBAAA,GAAqBC,yBAAiB,UAAU,CAAA;AACtD,EAAA,MAAM,iBAAA,GAAoBA,wBAAA,CAAiB,aAAA,EAAe,IAAA,IAAQ,EAAE,CAAA;AACpE,EAAA,MAAM;AAAA,IACF,EAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAA;AAAA,IACA,kBAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACJ,GAAI,KAAA;AAEJ,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,aAAA,KAAkBC,2BAAA,EAAc;AAU9D,EAAA,MAAM,EAAE,CAAA,EAAG,KAAA,EAAM,GAAIC,kBAAA,EAAY;AAGjC,EAAA,MAAM,QAAA,GAAWC,sBAAc,MAAM,CAAA;AAErC,EAAA,MAAM,UAAUC,kBAAA,CAAS;AAAA,IACrB,WAAW,SAAA,IAAa,EAAA;AAAA,IACxB,SAAA,EAAW,KAAA;AAAA,IACX,SAAA,EAAW,CAAC,CAAC,OAAA;AAAA,IACb,UAAA,EAAY,CAAC,CAAC;AAAA,GACjB,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,iBAAiB,IAAA,IAAQ,OAAO,kBAAkB,QAAA,GAClE,aAAA,CAAc,UAAS,GACvB,aAAA;AAEN,EAAA,MAAM,OAAA,mBACFC,cAAA;AAAA,IAACC,aAAA;AAAA,IAAA;AAAA,MACG,kBAAA,EAAoB,kBAAA,IAAsB,CAAA,CAAE,oBAAoB,CAAA;AAAA,MAChE,iBAAA,EAAmB,EAAE,mBAAmB,CAAA;AAAA,MACxC,KAAA;AAAA,MACA,UAAA,EAAY,QAAA;AAAA,MACZ,KAAA;AAAA,MACA,YAAY,KAAA,IAAS,WAAA;AAAA,MAKrB,WAAA,EAAa,CAAC,EAAC,OAAA,EAAS,OAAA,EAAS,KAAA,EAAO,QAAA,EAAQ,qBAM5CD,cAAA,CAACE,iCAAA,EAAA,EAAmB,OAAA,EAAkB,OAAA,EAAkB,OACnD,QAAA,EACL,CAAA;AAAA,MAEJ,KAAA,EAAO,aAAA;AAAA,MACP,WAAA;AAAA,MACA,SAAS,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAO,EAAC;AAAA,MACvC,QAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA,EAAW,SAAA,KAAc,CAAC,QAAA,IAAY,aAAA,IAAiB,IAAA,CAAA;AAAA,MACvD,OAAO,EAAE,KAAA,EAAO,QAAQ,MAAA,EAAQ,QAAA,GAAW,SAAS,MAAA,EAAW,YAAA,EAAc,GAAG,GAAI,iBAAA,IAAqB,OAAO,IAAA,CAAK,iBAAiB,EAAE,MAAA,GAAS,CAAA,GAAI,oBAAoB,kBAAA,EAAoB;AAAA,MAC7L,QAAA;AAAA,MACC,GAAG,IAAA;AAAA,MACJ,OAAA,EAAS,SAAA,IAAa,CAAC,CAAC,OAAA;AAAA,MACxB,MAAA,EAAQ,CAAC,CAAC,UAAA;AAAA,MACV,UAAU,QAAA,IAAY,OAAA;AAAA,MACtB,sBAAA,EAAwB,aAAA;AAAA,MACxB,SAAA,EAAW,CAAA,OAAA,EAAU,SAAA,IAAa,EAAE,IAAI,OAAO,CAAA,CAAA;AAAA,MAC9C,GAAI,UAAA,GAAa,UAAA,GAAa;AAAC;AAAA,GACpC;AAGJ,EAAA,IAAI,QAAA,EAAU;AACV,IAAA,OAAO,OAAA;AAAA,EACX;AAEA,EAAA,uBACIF,cAAA;AAAA,IAACG,oBAAA;AAAA,IAAA;AAAA,MACG,EAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MAEC,QAAA,EAAA;AAAA;AAAA,GACL;AAER;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/selects/Dropdown/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport { Dropdown } from \"@lmb-it/kitsconcertomobile\";\nimport type { IDropdownSelect } from \"@lmb-it/kitsconcerto-types\";\nimport { KitsContainer } from \"../../../_compat\";\nimport { ClHelper } from \"../../helpers/Functions\";\nimport { useSelectBase } from \"../hooks/useSelectBase\";\nimport {useComponentDefaults, useLanguage, useResolvedStyle} from \"../../../hooks\";\nimport SelectPopupOverlay from \"../helpers/SelectPopupOverlay\";\nimport useThemedFont from \"../../../hooks/useThemedFont\";\n\nconst KitsDropdown = ({ className, ref, ...rawProps }: IDropdownSelect) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('DropdownSelect', rawProps, 'Select');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {\n id,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n disabled,\n required,\n label,\n localProps,\n helperText,\n isFloatedLabel,\n withFilter,\n attached,\n inputSize,\n placeholder,\n hideError,\n virtualScroll,\n emptyFilterMessage,\n filterBy,\n loading,\n showClear,\n containerStyle,\n popup,\n } = props;\n\n const { list, keys, onChange, selectedValue } = useSelectBase();\n\n /* The panel's own copy. The native Dropdown lives in `apps/mobile`, which\n this package imports, so it cannot reach LocaleContext itself without a\n cycle between the two workspaces — the sentence is resolved here, where\n `useLanguage()` already is, and passed down as a prop.\n\n ⛔ `isRTL` is the READER's language, never `I18nManager.isRTL`. A\n consumer that forces RTL at boot keeps that process direction after the\n reader switches to English, and the filter field must follow the reader. */\n const { t, isRTL } = useLanguage();\n /* The face the consuming app's theme names for body text. React Native does\n not cascade fontFamily through Views, so the panel has to be told. */\n const bodyFont = useThemedFont('body');\n\n const ClState = ClHelper({\n inputSize: inputSize ?? \"\",\n isChecked: false,\n isInvalid: !!invalid,\n isDisabled: !!disabled,\n });\n\n const dropdownValue = selectedValue != null && typeof selectedValue !== 'object'\n ? selectedValue.toString()\n : selectedValue;\n\n const Element = (\n <Dropdown\n emptyFilterMessage={emptyFilterMessage ?? t('emptyFilterMessage')}\n filterPlaceholder={t('searchPlaceholder')}\n isRTL={isRTL}\n fontFamily={bodyFont}\n popup={popup}\n popupTitle={label ?? placeholder}\n /* The container is this library's own Dialog. It is injected rather\n than imported by the native Dropdown because that component lives\n in `apps/mobile`, which this package imports — the reverse import\n would be a cycle between the two workspaces. */\n renderPopup={({visible, onClose, title, children}: {\n visible: boolean;\n onClose: () => void;\n title?: React.ReactNode;\n children: React.ReactNode;\n }) => (\n <SelectPopupOverlay visible={visible} onClose={onClose} title={title}>\n {children}\n </SelectPopupOverlay>\n )}\n value={dropdownValue}\n placeholder={placeholder}\n options={Array.isArray(list) ? list : []}\n disabled={disabled}\n loading={loading}\n showClear={showClear ?? (!required && selectedValue != null)}\n style={{ width: '100%', height: attached ? '100%' : undefined, borderRadius: 0, ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle) }}\n onChange={onChange}\n {...keys}\n invalid={hideError && !!invalid}\n filter={!!withFilter}\n filterBy={filterBy ?? 'label'}\n virtualScrollerOptions={virtualScroll}\n className={`w-full ${className ?? ''} ${ClState}`}\n {...(localProps ? localProps : {})}\n />\n );\n\n if (attached) {\n return Element;\n }\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n hideError={hideError}\n errors={errors}\n helperText={helperText}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {Element}\n </KitsContainer>\n );\n}\nexport default KitsDropdown;\n"],"names":["useComponentDefaults","useResolvedStyle","useSelectBase","useLanguage","useThemedFont","ClHelper","jsx","Dropdown","SelectPopupOverlay","KitsContainer"],"mappings":"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"}
@@ -85,6 +85,7 @@ import { useSelectBase } from '../hooks/useSelectBase.js';
85
85
  import { useLanguage } from '../../../hooks/locale.js';
86
86
  import '../../../contexts/DialogContext.js';
87
87
  import '../../../contexts/PermissionsContext.js';
88
+ import '../../../contexts/BreadcrumbContext.js';
88
89
  import useComponentDefaults from '../../../hooks/useComponentDefaults.js';
89
90
  import useResolvedStyle from '../../../hooks/useResolvedStyle.js';
90
91
  import useThemedFont from '../../../hooks/useThemedFont.js';