@commercetools/nimbus 0.0.0-canary-20251126153537 → 0.0.0-canary-20251126163432
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/field-errors-ClQprmQz.es.js.map +1 -1
- package/dist/chunks/field-errors-D2re_C_c.cjs.js.map +1 -1
- package/dist/chunks/multiline-text-input-field-Bg5pfHwS.es.js +56 -0
- package/dist/chunks/multiline-text-input-field-Bg5pfHwS.es.js.map +1 -0
- package/dist/chunks/multiline-text-input-field-XzZ9n7TK.cjs.js +2 -0
- package/dist/chunks/multiline-text-input-field-XzZ9n7TK.cjs.js.map +1 -0
- package/dist/components/field-errors/field-errors.types.d.ts +1 -1
- package/dist/components/fields.cjs +1 -1
- package/dist/components/fields.es.js +8 -6
- package/dist/components/fields.es.js.map +1 -1
- package/dist/components/multiline-text-input-field.cjs +2 -0
- package/dist/components/multiline-text-input-field.cjs.map +1 -0
- package/dist/components/multiline-text-input-field.es.js +5 -0
- package/dist/components/multiline-text-input-field.es.js.map +1 -0
- package/dist/components/patterns.cjs +1 -1
- package/dist/components/patterns.es.js +8 -6
- package/dist/components/patterns.es.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +225 -223
- package/dist/index.es.js.map +1 -1
- package/dist/patterns/fields/index.d.ts +1 -0
- package/dist/patterns/fields/multiline-text-input-field/index.d.ts +2 -0
- package/dist/patterns/fields/multiline-text-input-field/multiline-text-input-field.d.ts +30 -0
- package/dist/patterns/fields/multiline-text-input-field/multiline-text-input-field.types.d.ts +44 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-errors-ClQprmQz.es.js","sources":["../../src/components/field-errors/field-errors.slots.tsx","../../src/components/field-errors/field-errors.i18n.ts","../../src/components/field-errors/field-errors.types.ts","../../src/components/field-errors/field-errors.tsx"],"sourcesContent":["import { createSlotRecipeContext } from \"@chakra-ui/react\";\nimport type { SlotComponent } from \"../../type-utils/slot-types\";\nimport type {\n FieldErrorsMessageSlotProps,\n FieldErrorsRootSlotProps,\n} from \"./field-errors.types\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"fieldErrors\",\n});\n\nexport const FieldErrorsRoot: SlotComponent<\n HTMLDivElement,\n FieldErrorsRootSlotProps\n> = withProvider<HTMLDivElement, FieldErrorsRootSlotProps>(\"div\", \"root\");\n\nexport const FieldErrorsMessage: SlotComponent<\n HTMLDivElement,\n FieldErrorsMessageSlotProps\n> = withContext<HTMLDivElement, FieldErrorsMessageSlotProps>(\"div\", \"message\");\n","import { defineMessages } from \"react-intl\";\n\nexport const messages = defineMessages({\n // Basic validation\n missingRequiredField: {\n id: \"Nimbus.FieldErrors.missingRequiredField\",\n description: \"Error message for missing required value\",\n defaultMessage: \"This field is required. Provide a value.\",\n },\n invalidValue: {\n id: \"Nimbus.FieldErrors.invalidValue\",\n description: \"Error message for invalid value or format\",\n defaultMessage: \"The provided value is invalid.\",\n },\n emptyValue: {\n id: \"Nimbus.FieldErrors.emptyValue\",\n description: \"Error message for empty value when content is required\",\n defaultMessage: \"This field cannot be empty.\",\n },\n\n // Length validation\n valueTooShort: {\n id: \"Nimbus.FieldErrors.valueTooShort\",\n description: \"Error message for minimum length validation\",\n defaultMessage: \"This value is too short.\",\n },\n valueTooLong: {\n id: \"Nimbus.FieldErrors.valueTooLong\",\n description: \"Error message for maximum length validation\",\n defaultMessage: \"This value is too long.\",\n },\n\n // Format validation\n invalidFormat: {\n id: \"Nimbus.FieldErrors.invalidFormat\",\n description: \"Error message for format validation\",\n defaultMessage: \"Please enter a valid format.\",\n },\n duplicateValue: {\n id: \"Nimbus.FieldErrors.duplicateValue\",\n description: \"Error message for duplicate value validation\",\n defaultMessage: \"This value is already in use. It must be unique.\",\n },\n\n // Numeric validation\n invalidNegativeNumber: {\n id: \"Nimbus.FieldErrors.invalidNegativeNumber\",\n description: \"Error message when negative number is used\",\n defaultMessage: \"Negative number is not supported.\",\n },\n invalidFractionalNumber: {\n id: \"Nimbus.FieldErrors.invalidFractionalNumber\",\n description: \"Error message when fractional number is used\",\n defaultMessage: \"A whole number is required.\",\n },\n valueBelowMinimum: {\n id: \"Nimbus.FieldErrors.valueBelowMinimum\",\n description: \"Error message for values below minimum threshold\",\n defaultMessage: \"Value must be greater than or equal to the minimum.\",\n },\n valueAboveMaximum: {\n id: \"Nimbus.FieldErrors.valueAboveMaximum\",\n description: \"Error message for values above maximum threshold\",\n defaultMessage: \"Value must be less than or equal to the maximum.\",\n },\n valueOutOfRange: {\n id: \"Nimbus.FieldErrors.valueOutOfRange\",\n description: \"Error message for values outside acceptable range\",\n defaultMessage: \"Value must be within the acceptable range.\",\n },\n\n // Server/async validation\n invalidFromServer: {\n id: \"Nimbus.FieldErrors.invalidFromServer\",\n description: \"Error message for server-side validation errors\",\n defaultMessage: \"Server validation failed. Please check your input.\",\n },\n resourceNotFound: {\n id: \"Nimbus.FieldErrors.resourceNotFound\",\n description: \"Error message when a resource is not found\",\n defaultMessage: \"The requested resource was not found.\",\n },\n valueBlocked: {\n id: \"Nimbus.FieldErrors.valueBlocked\",\n description: \"Error message for blocked or restricted values\",\n defaultMessage: \"This value is not allowed.\",\n },\n});\n","import type { ReactNode } from \"react\";\nimport type {\n HTMLChakraProps,\n SlotRecipeProps,\n UnstyledProp,\n} from \"@chakra-ui/react\";\nimport type { OmitInternalProps } from \"../../type-utils/omit-props\";\n\n// ============================================================\n// RECIPE PROPS\n// ============================================================\n\ntype FieldErrorsRecipeProps = SlotRecipeProps<\"fieldErrors\"> & UnstyledProp;\n\n// ============================================================\n// SLOT PROPS\n// ============================================================\n\nexport type FieldErrorsRootSlotProps = OmitInternalProps<\n HTMLChakraProps<\"div\", FieldErrorsRecipeProps>\n>;\n\nexport type FieldErrorsMessageSlotProps = HTMLChakraProps<\"div\">;\n\n// ============================================================\n// HELPER TYPES\n// ============================================================\n\nexport type FieldErrorsData = Record<string, boolean>;\n\nexport type TErrorRenderer = (key: string, error?: boolean) => ReactNode;\n\nexport const FieldErrorTypes = {\n MISSING: \"missing\",\n INVALID: \"invalid\",\n EMPTY: \"empty\",\n MIN_LENGTH: \"min\",\n MAX_LENGTH: \"max\",\n FORMAT: \"format\",\n DUPLICATE: \"duplicate\",\n NEGATIVE: \"negative\",\n FRACTIONS: \"fractions\",\n BELOW_MIN: \"belowMin\",\n ABOVE_MAX: \"aboveMax\",\n OUT_OF_RANGE: \"outOfRange\",\n INVALID_FROM_SERVER: \"invalidFromServer\",\n NOT_FOUND: \"notFound\",\n BLOCKED: \"blocked\",\n} as const;\n\nexport type TFieldErrorTypes =\n (typeof FieldErrorTypes)[keyof typeof FieldErrorTypes];\n\n// ============================================================\n// MAIN PROPS\n// ============================================================\n\nexport type FieldErrorsProps = FieldErrorsRootSlotProps & {\n /**\n * Object mapping error types to boolean values indicating presence\n */\n errors?: FieldErrorsData;\n /**\n * Whether the error messages are visible\n * @default false\n */\n isVisible?: boolean;\n /**\n * Custom render function for error messages\n */\n renderError?: TErrorRenderer;\n /**\n * Default render function for error messages when no custom renderer is provided\n */\n renderDefaultError?: TErrorRenderer;\n /**\n * Custom message overrides for specific error types\n */\n customMessages?: {\n /** Message for missing field error */\n missing?: ReactNode;\n /** Message for invalid field error */\n invalid?: ReactNode;\n /** Message for empty field error */\n empty?: ReactNode;\n /** Message for minimum length error */\n min?: ReactNode;\n /** Message for maximum length error */\n max?: ReactNode;\n /** Message for format error */\n format?: ReactNode;\n /** Message for duplicate value error */\n duplicate?: ReactNode;\n /** Message for negative value error */\n negative?: ReactNode;\n /** Message for fractional value error */\n fractions?: ReactNode;\n /** Message for below minimum value error */\n belowMin?: ReactNode;\n /** Message for above maximum value error */\n aboveMax?: ReactNode;\n /** Message for out of range error */\n outOfRange?: ReactNode;\n /** Message for invalid from server error */\n invalidFromServer?: ReactNode;\n /** Message for not found error */\n notFound?: ReactNode;\n /** Message for blocked error */\n blocked?: ReactNode;\n };\n};\n","import { FormattedMessage } from \"react-intl\";\nimport { FieldErrorsRoot, FieldErrorsMessage } from \"./field-errors.slots\";\nimport { messages } from \"./field-errors.i18n\";\nimport type { FieldErrorsProps } from \"./field-errors.types\";\nimport { FieldErrorTypes } from \"./field-errors.types\";\n\nconst isObject = (obj: unknown): boolean => typeof obj === \"object\";\n\n/**\n * Get custom message for a given error key\n */\nconst getCustomMessage = (\n key: string,\n customMessages?: FieldErrorsProps[\"customMessages\"]\n): React.ReactNode => {\n if (!customMessages) return null;\n\n // Map error keys to custom messages\n switch (key) {\n case FieldErrorTypes.MISSING:\n return customMessages.missing || null;\n case FieldErrorTypes.INVALID:\n return customMessages.invalid || null;\n case FieldErrorTypes.EMPTY:\n return customMessages.empty || null;\n case FieldErrorTypes.MIN_LENGTH:\n return customMessages.min || null;\n case FieldErrorTypes.MAX_LENGTH:\n return customMessages.max || null;\n case FieldErrorTypes.FORMAT:\n return customMessages.format || null;\n case FieldErrorTypes.DUPLICATE:\n return customMessages.duplicate || null;\n case FieldErrorTypes.NEGATIVE:\n return customMessages.negative || null;\n case FieldErrorTypes.FRACTIONS:\n return customMessages.fractions || null;\n case FieldErrorTypes.BELOW_MIN:\n return customMessages.belowMin || null;\n case FieldErrorTypes.ABOVE_MAX:\n return customMessages.aboveMax || null;\n case FieldErrorTypes.OUT_OF_RANGE:\n return customMessages.outOfRange || null;\n case FieldErrorTypes.INVALID_FROM_SERVER:\n return customMessages.invalidFromServer || null;\n case FieldErrorTypes.NOT_FOUND:\n return customMessages.notFound || null;\n case FieldErrorTypes.BLOCKED:\n return customMessages.blocked || null;\n default:\n return null;\n }\n};\n\n/**\n * Get built-in localized message for a given error key\n */\nconst getBuiltInMessage = (key: string): React.ReactNode => {\n switch (key) {\n // Basic validation\n case FieldErrorTypes.MISSING:\n return <FormattedMessage {...messages.missingRequiredField} />;\n case FieldErrorTypes.INVALID:\n return <FormattedMessage {...messages.invalidValue} />;\n case FieldErrorTypes.EMPTY:\n return <FormattedMessage {...messages.emptyValue} />;\n\n // Length validation\n case FieldErrorTypes.MIN_LENGTH:\n return <FormattedMessage {...messages.valueTooShort} />;\n case FieldErrorTypes.MAX_LENGTH:\n return <FormattedMessage {...messages.valueTooLong} />;\n\n // Format validation\n case FieldErrorTypes.FORMAT:\n return <FormattedMessage {...messages.invalidFormat} />;\n case FieldErrorTypes.DUPLICATE:\n return <FormattedMessage {...messages.duplicateValue} />;\n\n // Numeric validation\n case FieldErrorTypes.NEGATIVE:\n return <FormattedMessage {...messages.invalidNegativeNumber} />;\n case FieldErrorTypes.FRACTIONS:\n return <FormattedMessage {...messages.invalidFractionalNumber} />;\n case FieldErrorTypes.BELOW_MIN:\n return <FormattedMessage {...messages.valueBelowMinimum} />;\n case FieldErrorTypes.ABOVE_MAX:\n return <FormattedMessage {...messages.valueAboveMaximum} />;\n case FieldErrorTypes.OUT_OF_RANGE:\n return <FormattedMessage {...messages.valueOutOfRange} />;\n\n // Server/async validation\n case FieldErrorTypes.INVALID_FROM_SERVER:\n return <FormattedMessage {...messages.invalidFromServer} />;\n case FieldErrorTypes.NOT_FOUND:\n return <FormattedMessage {...messages.resourceNotFound} />;\n case FieldErrorTypes.BLOCKED:\n return <FormattedMessage {...messages.valueBlocked} />;\n\n default:\n return null;\n }\n};\n\n/**\n * # FieldErrors\n *\n * Renders error messages based on error object configuration.\n * Provides backwards compatibility with UI-Kit FieldErrors while integrating\n * with Nimbus design system patterns.\n *\n * Supports custom error renderers and localized built-in error messages\n * for common validation scenarios like missing required fields.\n *\n * @see {@link https://nimbus.commercetools.com/components/field-errors}\n *\n * @supportsStyleProps\n */\nexport const FieldErrors = ({\n id,\n errors,\n isVisible = true, // Default to true for backwards compatibility, but will be auto-handled in future\n renderError,\n renderDefaultError,\n customMessages,\n ...props\n}: FieldErrorsProps) => {\n // Don't render if not visible or no errors\n if (!isVisible) return null;\n if (!errors || !isObject(errors)) return null;\n\n // Filter to only show truthy errors\n const activeErrors = Object.entries(errors).filter(([, error]) => error);\n\n // Don't render if no active errors\n if (activeErrors.length === 0) return null;\n\n return (\n <FieldErrorsRoot id={id} role=\"alert\" {...props}>\n {activeErrors.map(([key, error]) => {\n // Try custom error renderer first\n const customErrorElement = renderError?.(key, error);\n if (customErrorElement) {\n return (\n <FieldErrorsMessage key={key}>\n {customErrorElement}\n </FieldErrorsMessage>\n );\n }\n\n // Try default error renderer second\n const defaultErrorElement = renderDefaultError?.(key, error);\n if (defaultErrorElement) {\n return (\n <FieldErrorsMessage key={key}>\n {defaultErrorElement}\n </FieldErrorsMessage>\n );\n }\n\n // Try custom messages for built-in error types first\n const customMessage = getCustomMessage(key, customMessages);\n if (customMessage) {\n return (\n <FieldErrorsMessage key={key}>{customMessage}</FieldErrorsMessage>\n );\n }\n\n // Fall back to built-in localized messages\n const builtInMessage = getBuiltInMessage(key);\n if (builtInMessage) {\n return (\n <FieldErrorsMessage key={key}>{builtInMessage}</FieldErrorsMessage>\n );\n }\n\n // If no renderer handles it, render nothing\n return null;\n })}\n </FieldErrorsRoot>\n );\n};\n\n// Static properties for backwards compatibility with UI-Kit\nFieldErrors.displayName = \"FieldErrors\";\nFieldErrors.errorTypes = FieldErrorTypes;\n// Static properties for string conversion, mostly for testing\nFieldErrors.getBuiltInMessage = getBuiltInMessage;\nFieldErrors.getCustomMessage = getCustomMessage;\n"],"names":["withProvider","withContext","createSlotRecipeContext","FieldErrorsRoot","FieldErrorsMessage","messages","defineMessages","FieldErrorTypes","isObject","obj","getCustomMessage","key","customMessages","getBuiltInMessage","jsx","FormattedMessage","FieldErrors","id","errors","isVisible","renderError","renderDefaultError","props","activeErrors","error","customErrorElement","defaultErrorElement","customMessage","builtInMessage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field-errors-ClQprmQz.es.js","sources":["../../src/components/field-errors/field-errors.slots.tsx","../../src/components/field-errors/field-errors.i18n.ts","../../src/components/field-errors/field-errors.types.ts","../../src/components/field-errors/field-errors.tsx"],"sourcesContent":["import { createSlotRecipeContext } from \"@chakra-ui/react\";\nimport type { SlotComponent } from \"../../type-utils/slot-types\";\nimport type {\n FieldErrorsMessageSlotProps,\n FieldErrorsRootSlotProps,\n} from \"./field-errors.types\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"fieldErrors\",\n});\n\nexport const FieldErrorsRoot: SlotComponent<\n HTMLDivElement,\n FieldErrorsRootSlotProps\n> = withProvider<HTMLDivElement, FieldErrorsRootSlotProps>(\"div\", \"root\");\n\nexport const FieldErrorsMessage: SlotComponent<\n HTMLDivElement,\n FieldErrorsMessageSlotProps\n> = withContext<HTMLDivElement, FieldErrorsMessageSlotProps>(\"div\", \"message\");\n","import { defineMessages } from \"react-intl\";\n\nexport const messages = defineMessages({\n // Basic validation\n missingRequiredField: {\n id: \"Nimbus.FieldErrors.missingRequiredField\",\n description: \"Error message for missing required value\",\n defaultMessage: \"This field is required. Provide a value.\",\n },\n invalidValue: {\n id: \"Nimbus.FieldErrors.invalidValue\",\n description: \"Error message for invalid value or format\",\n defaultMessage: \"The provided value is invalid.\",\n },\n emptyValue: {\n id: \"Nimbus.FieldErrors.emptyValue\",\n description: \"Error message for empty value when content is required\",\n defaultMessage: \"This field cannot be empty.\",\n },\n\n // Length validation\n valueTooShort: {\n id: \"Nimbus.FieldErrors.valueTooShort\",\n description: \"Error message for minimum length validation\",\n defaultMessage: \"This value is too short.\",\n },\n valueTooLong: {\n id: \"Nimbus.FieldErrors.valueTooLong\",\n description: \"Error message for maximum length validation\",\n defaultMessage: \"This value is too long.\",\n },\n\n // Format validation\n invalidFormat: {\n id: \"Nimbus.FieldErrors.invalidFormat\",\n description: \"Error message for format validation\",\n defaultMessage: \"Please enter a valid format.\",\n },\n duplicateValue: {\n id: \"Nimbus.FieldErrors.duplicateValue\",\n description: \"Error message for duplicate value validation\",\n defaultMessage: \"This value is already in use. It must be unique.\",\n },\n\n // Numeric validation\n invalidNegativeNumber: {\n id: \"Nimbus.FieldErrors.invalidNegativeNumber\",\n description: \"Error message when negative number is used\",\n defaultMessage: \"Negative number is not supported.\",\n },\n invalidFractionalNumber: {\n id: \"Nimbus.FieldErrors.invalidFractionalNumber\",\n description: \"Error message when fractional number is used\",\n defaultMessage: \"A whole number is required.\",\n },\n valueBelowMinimum: {\n id: \"Nimbus.FieldErrors.valueBelowMinimum\",\n description: \"Error message for values below minimum threshold\",\n defaultMessage: \"Value must be greater than or equal to the minimum.\",\n },\n valueAboveMaximum: {\n id: \"Nimbus.FieldErrors.valueAboveMaximum\",\n description: \"Error message for values above maximum threshold\",\n defaultMessage: \"Value must be less than or equal to the maximum.\",\n },\n valueOutOfRange: {\n id: \"Nimbus.FieldErrors.valueOutOfRange\",\n description: \"Error message for values outside acceptable range\",\n defaultMessage: \"Value must be within the acceptable range.\",\n },\n\n // Server/async validation\n invalidFromServer: {\n id: \"Nimbus.FieldErrors.invalidFromServer\",\n description: \"Error message for server-side validation errors\",\n defaultMessage: \"Server validation failed. Please check your input.\",\n },\n resourceNotFound: {\n id: \"Nimbus.FieldErrors.resourceNotFound\",\n description: \"Error message when a resource is not found\",\n defaultMessage: \"The requested resource was not found.\",\n },\n valueBlocked: {\n id: \"Nimbus.FieldErrors.valueBlocked\",\n description: \"Error message for blocked or restricted values\",\n defaultMessage: \"This value is not allowed.\",\n },\n});\n","import type { ReactNode } from \"react\";\nimport type {\n HTMLChakraProps,\n SlotRecipeProps,\n UnstyledProp,\n} from \"@chakra-ui/react\";\nimport type { OmitInternalProps } from \"../../type-utils/omit-props\";\n\n// ============================================================\n// RECIPE PROPS\n// ============================================================\n\ntype FieldErrorsRecipeProps = SlotRecipeProps<\"fieldErrors\"> & UnstyledProp;\n\n// ============================================================\n// SLOT PROPS\n// ============================================================\n\nexport type FieldErrorsRootSlotProps = OmitInternalProps<\n HTMLChakraProps<\"div\", FieldErrorsRecipeProps>\n>;\n\nexport type FieldErrorsMessageSlotProps = HTMLChakraProps<\"div\">;\n\n// ============================================================\n// HELPER TYPES\n// ============================================================\n\nexport type FieldErrorsData = Record<string, boolean>;\n\nexport type TErrorRenderer = (key: string, error?: boolean) => ReactNode;\n\nexport const FieldErrorTypes = {\n MISSING: \"missing\",\n INVALID: \"invalid\",\n EMPTY: \"empty\",\n MIN_LENGTH: \"min\",\n MAX_LENGTH: \"max\",\n FORMAT: \"format\",\n DUPLICATE: \"duplicate\",\n NEGATIVE: \"negative\",\n FRACTIONS: \"fractions\",\n BELOW_MIN: \"belowMin\",\n ABOVE_MAX: \"aboveMax\",\n OUT_OF_RANGE: \"outOfRange\",\n INVALID_FROM_SERVER: \"invalidFromServer\",\n NOT_FOUND: \"notFound\",\n BLOCKED: \"blocked\",\n} as const;\n\nexport type TFieldErrorTypes =\n (typeof FieldErrorTypes)[keyof typeof FieldErrorTypes];\n\n// ============================================================\n// MAIN PROPS\n// ============================================================\n\nexport type FieldErrorsProps = FieldErrorsRootSlotProps & {\n /**\n * Object mapping error types to boolean values indicating presence\n */\n errors?: FieldErrorsData;\n /**\n * Whether the error messages are visible\n * @default true\n */\n isVisible?: boolean;\n /**\n * Custom render function for error messages\n */\n renderError?: TErrorRenderer;\n /**\n * Default render function for error messages when no custom renderer is provided\n */\n renderDefaultError?: TErrorRenderer;\n /**\n * Custom message overrides for specific error types\n */\n customMessages?: {\n /** Message for missing field error */\n missing?: ReactNode;\n /** Message for invalid field error */\n invalid?: ReactNode;\n /** Message for empty field error */\n empty?: ReactNode;\n /** Message for minimum length error */\n min?: ReactNode;\n /** Message for maximum length error */\n max?: ReactNode;\n /** Message for format error */\n format?: ReactNode;\n /** Message for duplicate value error */\n duplicate?: ReactNode;\n /** Message for negative value error */\n negative?: ReactNode;\n /** Message for fractional value error */\n fractions?: ReactNode;\n /** Message for below minimum value error */\n belowMin?: ReactNode;\n /** Message for above maximum value error */\n aboveMax?: ReactNode;\n /** Message for out of range error */\n outOfRange?: ReactNode;\n /** Message for invalid from server error */\n invalidFromServer?: ReactNode;\n /** Message for not found error */\n notFound?: ReactNode;\n /** Message for blocked error */\n blocked?: ReactNode;\n };\n};\n","import { FormattedMessage } from \"react-intl\";\nimport { FieldErrorsRoot, FieldErrorsMessage } from \"./field-errors.slots\";\nimport { messages } from \"./field-errors.i18n\";\nimport type { FieldErrorsProps } from \"./field-errors.types\";\nimport { FieldErrorTypes } from \"./field-errors.types\";\n\nconst isObject = (obj: unknown): boolean => typeof obj === \"object\";\n\n/**\n * Get custom message for a given error key\n */\nconst getCustomMessage = (\n key: string,\n customMessages?: FieldErrorsProps[\"customMessages\"]\n): React.ReactNode => {\n if (!customMessages) return null;\n\n // Map error keys to custom messages\n switch (key) {\n case FieldErrorTypes.MISSING:\n return customMessages.missing || null;\n case FieldErrorTypes.INVALID:\n return customMessages.invalid || null;\n case FieldErrorTypes.EMPTY:\n return customMessages.empty || null;\n case FieldErrorTypes.MIN_LENGTH:\n return customMessages.min || null;\n case FieldErrorTypes.MAX_LENGTH:\n return customMessages.max || null;\n case FieldErrorTypes.FORMAT:\n return customMessages.format || null;\n case FieldErrorTypes.DUPLICATE:\n return customMessages.duplicate || null;\n case FieldErrorTypes.NEGATIVE:\n return customMessages.negative || null;\n case FieldErrorTypes.FRACTIONS:\n return customMessages.fractions || null;\n case FieldErrorTypes.BELOW_MIN:\n return customMessages.belowMin || null;\n case FieldErrorTypes.ABOVE_MAX:\n return customMessages.aboveMax || null;\n case FieldErrorTypes.OUT_OF_RANGE:\n return customMessages.outOfRange || null;\n case FieldErrorTypes.INVALID_FROM_SERVER:\n return customMessages.invalidFromServer || null;\n case FieldErrorTypes.NOT_FOUND:\n return customMessages.notFound || null;\n case FieldErrorTypes.BLOCKED:\n return customMessages.blocked || null;\n default:\n return null;\n }\n};\n\n/**\n * Get built-in localized message for a given error key\n */\nconst getBuiltInMessage = (key: string): React.ReactNode => {\n switch (key) {\n // Basic validation\n case FieldErrorTypes.MISSING:\n return <FormattedMessage {...messages.missingRequiredField} />;\n case FieldErrorTypes.INVALID:\n return <FormattedMessage {...messages.invalidValue} />;\n case FieldErrorTypes.EMPTY:\n return <FormattedMessage {...messages.emptyValue} />;\n\n // Length validation\n case FieldErrorTypes.MIN_LENGTH:\n return <FormattedMessage {...messages.valueTooShort} />;\n case FieldErrorTypes.MAX_LENGTH:\n return <FormattedMessage {...messages.valueTooLong} />;\n\n // Format validation\n case FieldErrorTypes.FORMAT:\n return <FormattedMessage {...messages.invalidFormat} />;\n case FieldErrorTypes.DUPLICATE:\n return <FormattedMessage {...messages.duplicateValue} />;\n\n // Numeric validation\n case FieldErrorTypes.NEGATIVE:\n return <FormattedMessage {...messages.invalidNegativeNumber} />;\n case FieldErrorTypes.FRACTIONS:\n return <FormattedMessage {...messages.invalidFractionalNumber} />;\n case FieldErrorTypes.BELOW_MIN:\n return <FormattedMessage {...messages.valueBelowMinimum} />;\n case FieldErrorTypes.ABOVE_MAX:\n return <FormattedMessage {...messages.valueAboveMaximum} />;\n case FieldErrorTypes.OUT_OF_RANGE:\n return <FormattedMessage {...messages.valueOutOfRange} />;\n\n // Server/async validation\n case FieldErrorTypes.INVALID_FROM_SERVER:\n return <FormattedMessage {...messages.invalidFromServer} />;\n case FieldErrorTypes.NOT_FOUND:\n return <FormattedMessage {...messages.resourceNotFound} />;\n case FieldErrorTypes.BLOCKED:\n return <FormattedMessage {...messages.valueBlocked} />;\n\n default:\n return null;\n }\n};\n\n/**\n * # FieldErrors\n *\n * Renders error messages based on error object configuration.\n * Provides backwards compatibility with UI-Kit FieldErrors while integrating\n * with Nimbus design system patterns.\n *\n * Supports custom error renderers and localized built-in error messages\n * for common validation scenarios like missing required fields.\n *\n * @see {@link https://nimbus.commercetools.com/components/field-errors}\n *\n * @supportsStyleProps\n */\nexport const FieldErrors = ({\n id,\n errors,\n isVisible = true, // Default to true for backwards compatibility, but will be auto-handled in future\n renderError,\n renderDefaultError,\n customMessages,\n ...props\n}: FieldErrorsProps) => {\n // Don't render if not visible or no errors\n if (!isVisible) return null;\n if (!errors || !isObject(errors)) return null;\n\n // Filter to only show truthy errors\n const activeErrors = Object.entries(errors).filter(([, error]) => error);\n\n // Don't render if no active errors\n if (activeErrors.length === 0) return null;\n\n return (\n <FieldErrorsRoot id={id} role=\"alert\" {...props}>\n {activeErrors.map(([key, error]) => {\n // Try custom error renderer first\n const customErrorElement = renderError?.(key, error);\n if (customErrorElement) {\n return (\n <FieldErrorsMessage key={key}>\n {customErrorElement}\n </FieldErrorsMessage>\n );\n }\n\n // Try default error renderer second\n const defaultErrorElement = renderDefaultError?.(key, error);\n if (defaultErrorElement) {\n return (\n <FieldErrorsMessage key={key}>\n {defaultErrorElement}\n </FieldErrorsMessage>\n );\n }\n\n // Try custom messages for built-in error types first\n const customMessage = getCustomMessage(key, customMessages);\n if (customMessage) {\n return (\n <FieldErrorsMessage key={key}>{customMessage}</FieldErrorsMessage>\n );\n }\n\n // Fall back to built-in localized messages\n const builtInMessage = getBuiltInMessage(key);\n if (builtInMessage) {\n return (\n <FieldErrorsMessage key={key}>{builtInMessage}</FieldErrorsMessage>\n );\n }\n\n // If no renderer handles it, render nothing\n return null;\n })}\n </FieldErrorsRoot>\n );\n};\n\n// Static properties for backwards compatibility with UI-Kit\nFieldErrors.displayName = \"FieldErrors\";\nFieldErrors.errorTypes = FieldErrorTypes;\n// Static properties for string conversion, mostly for testing\nFieldErrors.getBuiltInMessage = getBuiltInMessage;\nFieldErrors.getCustomMessage = getCustomMessage;\n"],"names":["withProvider","withContext","createSlotRecipeContext","FieldErrorsRoot","FieldErrorsMessage","messages","defineMessages","FieldErrorTypes","isObject","obj","getCustomMessage","key","customMessages","getBuiltInMessage","jsx","FormattedMessage","FieldErrors","id","errors","isVisible","renderError","renderDefaultError","props","activeErrors","error","customErrorElement","defaultErrorElement","customMessage","builtInMessage"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-errors-D2re_C_c.cjs.js","sources":["../../src/components/field-errors/field-errors.slots.tsx","../../src/components/field-errors/field-errors.i18n.ts","../../src/components/field-errors/field-errors.types.ts","../../src/components/field-errors/field-errors.tsx"],"sourcesContent":["import { createSlotRecipeContext } from \"@chakra-ui/react\";\nimport type { SlotComponent } from \"../../type-utils/slot-types\";\nimport type {\n FieldErrorsMessageSlotProps,\n FieldErrorsRootSlotProps,\n} from \"./field-errors.types\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"fieldErrors\",\n});\n\nexport const FieldErrorsRoot: SlotComponent<\n HTMLDivElement,\n FieldErrorsRootSlotProps\n> = withProvider<HTMLDivElement, FieldErrorsRootSlotProps>(\"div\", \"root\");\n\nexport const FieldErrorsMessage: SlotComponent<\n HTMLDivElement,\n FieldErrorsMessageSlotProps\n> = withContext<HTMLDivElement, FieldErrorsMessageSlotProps>(\"div\", \"message\");\n","import { defineMessages } from \"react-intl\";\n\nexport const messages = defineMessages({\n // Basic validation\n missingRequiredField: {\n id: \"Nimbus.FieldErrors.missingRequiredField\",\n description: \"Error message for missing required value\",\n defaultMessage: \"This field is required. Provide a value.\",\n },\n invalidValue: {\n id: \"Nimbus.FieldErrors.invalidValue\",\n description: \"Error message for invalid value or format\",\n defaultMessage: \"The provided value is invalid.\",\n },\n emptyValue: {\n id: \"Nimbus.FieldErrors.emptyValue\",\n description: \"Error message for empty value when content is required\",\n defaultMessage: \"This field cannot be empty.\",\n },\n\n // Length validation\n valueTooShort: {\n id: \"Nimbus.FieldErrors.valueTooShort\",\n description: \"Error message for minimum length validation\",\n defaultMessage: \"This value is too short.\",\n },\n valueTooLong: {\n id: \"Nimbus.FieldErrors.valueTooLong\",\n description: \"Error message for maximum length validation\",\n defaultMessage: \"This value is too long.\",\n },\n\n // Format validation\n invalidFormat: {\n id: \"Nimbus.FieldErrors.invalidFormat\",\n description: \"Error message for format validation\",\n defaultMessage: \"Please enter a valid format.\",\n },\n duplicateValue: {\n id: \"Nimbus.FieldErrors.duplicateValue\",\n description: \"Error message for duplicate value validation\",\n defaultMessage: \"This value is already in use. It must be unique.\",\n },\n\n // Numeric validation\n invalidNegativeNumber: {\n id: \"Nimbus.FieldErrors.invalidNegativeNumber\",\n description: \"Error message when negative number is used\",\n defaultMessage: \"Negative number is not supported.\",\n },\n invalidFractionalNumber: {\n id: \"Nimbus.FieldErrors.invalidFractionalNumber\",\n description: \"Error message when fractional number is used\",\n defaultMessage: \"A whole number is required.\",\n },\n valueBelowMinimum: {\n id: \"Nimbus.FieldErrors.valueBelowMinimum\",\n description: \"Error message for values below minimum threshold\",\n defaultMessage: \"Value must be greater than or equal to the minimum.\",\n },\n valueAboveMaximum: {\n id: \"Nimbus.FieldErrors.valueAboveMaximum\",\n description: \"Error message for values above maximum threshold\",\n defaultMessage: \"Value must be less than or equal to the maximum.\",\n },\n valueOutOfRange: {\n id: \"Nimbus.FieldErrors.valueOutOfRange\",\n description: \"Error message for values outside acceptable range\",\n defaultMessage: \"Value must be within the acceptable range.\",\n },\n\n // Server/async validation\n invalidFromServer: {\n id: \"Nimbus.FieldErrors.invalidFromServer\",\n description: \"Error message for server-side validation errors\",\n defaultMessage: \"Server validation failed. Please check your input.\",\n },\n resourceNotFound: {\n id: \"Nimbus.FieldErrors.resourceNotFound\",\n description: \"Error message when a resource is not found\",\n defaultMessage: \"The requested resource was not found.\",\n },\n valueBlocked: {\n id: \"Nimbus.FieldErrors.valueBlocked\",\n description: \"Error message for blocked or restricted values\",\n defaultMessage: \"This value is not allowed.\",\n },\n});\n","import type { ReactNode } from \"react\";\nimport type {\n HTMLChakraProps,\n SlotRecipeProps,\n UnstyledProp,\n} from \"@chakra-ui/react\";\nimport type { OmitInternalProps } from \"../../type-utils/omit-props\";\n\n// ============================================================\n// RECIPE PROPS\n// ============================================================\n\ntype FieldErrorsRecipeProps = SlotRecipeProps<\"fieldErrors\"> & UnstyledProp;\n\n// ============================================================\n// SLOT PROPS\n// ============================================================\n\nexport type FieldErrorsRootSlotProps = OmitInternalProps<\n HTMLChakraProps<\"div\", FieldErrorsRecipeProps>\n>;\n\nexport type FieldErrorsMessageSlotProps = HTMLChakraProps<\"div\">;\n\n// ============================================================\n// HELPER TYPES\n// ============================================================\n\nexport type FieldErrorsData = Record<string, boolean>;\n\nexport type TErrorRenderer = (key: string, error?: boolean) => ReactNode;\n\nexport const FieldErrorTypes = {\n MISSING: \"missing\",\n INVALID: \"invalid\",\n EMPTY: \"empty\",\n MIN_LENGTH: \"min\",\n MAX_LENGTH: \"max\",\n FORMAT: \"format\",\n DUPLICATE: \"duplicate\",\n NEGATIVE: \"negative\",\n FRACTIONS: \"fractions\",\n BELOW_MIN: \"belowMin\",\n ABOVE_MAX: \"aboveMax\",\n OUT_OF_RANGE: \"outOfRange\",\n INVALID_FROM_SERVER: \"invalidFromServer\",\n NOT_FOUND: \"notFound\",\n BLOCKED: \"blocked\",\n} as const;\n\nexport type TFieldErrorTypes =\n (typeof FieldErrorTypes)[keyof typeof FieldErrorTypes];\n\n// ============================================================\n// MAIN PROPS\n// ============================================================\n\nexport type FieldErrorsProps = FieldErrorsRootSlotProps & {\n /**\n * Object mapping error types to boolean values indicating presence\n */\n errors?: FieldErrorsData;\n /**\n * Whether the error messages are visible\n * @default false\n */\n isVisible?: boolean;\n /**\n * Custom render function for error messages\n */\n renderError?: TErrorRenderer;\n /**\n * Default render function for error messages when no custom renderer is provided\n */\n renderDefaultError?: TErrorRenderer;\n /**\n * Custom message overrides for specific error types\n */\n customMessages?: {\n /** Message for missing field error */\n missing?: ReactNode;\n /** Message for invalid field error */\n invalid?: ReactNode;\n /** Message for empty field error */\n empty?: ReactNode;\n /** Message for minimum length error */\n min?: ReactNode;\n /** Message for maximum length error */\n max?: ReactNode;\n /** Message for format error */\n format?: ReactNode;\n /** Message for duplicate value error */\n duplicate?: ReactNode;\n /** Message for negative value error */\n negative?: ReactNode;\n /** Message for fractional value error */\n fractions?: ReactNode;\n /** Message for below minimum value error */\n belowMin?: ReactNode;\n /** Message for above maximum value error */\n aboveMax?: ReactNode;\n /** Message for out of range error */\n outOfRange?: ReactNode;\n /** Message for invalid from server error */\n invalidFromServer?: ReactNode;\n /** Message for not found error */\n notFound?: ReactNode;\n /** Message for blocked error */\n blocked?: ReactNode;\n };\n};\n","import { FormattedMessage } from \"react-intl\";\nimport { FieldErrorsRoot, FieldErrorsMessage } from \"./field-errors.slots\";\nimport { messages } from \"./field-errors.i18n\";\nimport type { FieldErrorsProps } from \"./field-errors.types\";\nimport { FieldErrorTypes } from \"./field-errors.types\";\n\nconst isObject = (obj: unknown): boolean => typeof obj === \"object\";\n\n/**\n * Get custom message for a given error key\n */\nconst getCustomMessage = (\n key: string,\n customMessages?: FieldErrorsProps[\"customMessages\"]\n): React.ReactNode => {\n if (!customMessages) return null;\n\n // Map error keys to custom messages\n switch (key) {\n case FieldErrorTypes.MISSING:\n return customMessages.missing || null;\n case FieldErrorTypes.INVALID:\n return customMessages.invalid || null;\n case FieldErrorTypes.EMPTY:\n return customMessages.empty || null;\n case FieldErrorTypes.MIN_LENGTH:\n return customMessages.min || null;\n case FieldErrorTypes.MAX_LENGTH:\n return customMessages.max || null;\n case FieldErrorTypes.FORMAT:\n return customMessages.format || null;\n case FieldErrorTypes.DUPLICATE:\n return customMessages.duplicate || null;\n case FieldErrorTypes.NEGATIVE:\n return customMessages.negative || null;\n case FieldErrorTypes.FRACTIONS:\n return customMessages.fractions || null;\n case FieldErrorTypes.BELOW_MIN:\n return customMessages.belowMin || null;\n case FieldErrorTypes.ABOVE_MAX:\n return customMessages.aboveMax || null;\n case FieldErrorTypes.OUT_OF_RANGE:\n return customMessages.outOfRange || null;\n case FieldErrorTypes.INVALID_FROM_SERVER:\n return customMessages.invalidFromServer || null;\n case FieldErrorTypes.NOT_FOUND:\n return customMessages.notFound || null;\n case FieldErrorTypes.BLOCKED:\n return customMessages.blocked || null;\n default:\n return null;\n }\n};\n\n/**\n * Get built-in localized message for a given error key\n */\nconst getBuiltInMessage = (key: string): React.ReactNode => {\n switch (key) {\n // Basic validation\n case FieldErrorTypes.MISSING:\n return <FormattedMessage {...messages.missingRequiredField} />;\n case FieldErrorTypes.INVALID:\n return <FormattedMessage {...messages.invalidValue} />;\n case FieldErrorTypes.EMPTY:\n return <FormattedMessage {...messages.emptyValue} />;\n\n // Length validation\n case FieldErrorTypes.MIN_LENGTH:\n return <FormattedMessage {...messages.valueTooShort} />;\n case FieldErrorTypes.MAX_LENGTH:\n return <FormattedMessage {...messages.valueTooLong} />;\n\n // Format validation\n case FieldErrorTypes.FORMAT:\n return <FormattedMessage {...messages.invalidFormat} />;\n case FieldErrorTypes.DUPLICATE:\n return <FormattedMessage {...messages.duplicateValue} />;\n\n // Numeric validation\n case FieldErrorTypes.NEGATIVE:\n return <FormattedMessage {...messages.invalidNegativeNumber} />;\n case FieldErrorTypes.FRACTIONS:\n return <FormattedMessage {...messages.invalidFractionalNumber} />;\n case FieldErrorTypes.BELOW_MIN:\n return <FormattedMessage {...messages.valueBelowMinimum} />;\n case FieldErrorTypes.ABOVE_MAX:\n return <FormattedMessage {...messages.valueAboveMaximum} />;\n case FieldErrorTypes.OUT_OF_RANGE:\n return <FormattedMessage {...messages.valueOutOfRange} />;\n\n // Server/async validation\n case FieldErrorTypes.INVALID_FROM_SERVER:\n return <FormattedMessage {...messages.invalidFromServer} />;\n case FieldErrorTypes.NOT_FOUND:\n return <FormattedMessage {...messages.resourceNotFound} />;\n case FieldErrorTypes.BLOCKED:\n return <FormattedMessage {...messages.valueBlocked} />;\n\n default:\n return null;\n }\n};\n\n/**\n * # FieldErrors\n *\n * Renders error messages based on error object configuration.\n * Provides backwards compatibility with UI-Kit FieldErrors while integrating\n * with Nimbus design system patterns.\n *\n * Supports custom error renderers and localized built-in error messages\n * for common validation scenarios like missing required fields.\n *\n * @see {@link https://nimbus.commercetools.com/components/field-errors}\n *\n * @supportsStyleProps\n */\nexport const FieldErrors = ({\n id,\n errors,\n isVisible = true, // Default to true for backwards compatibility, but will be auto-handled in future\n renderError,\n renderDefaultError,\n customMessages,\n ...props\n}: FieldErrorsProps) => {\n // Don't render if not visible or no errors\n if (!isVisible) return null;\n if (!errors || !isObject(errors)) return null;\n\n // Filter to only show truthy errors\n const activeErrors = Object.entries(errors).filter(([, error]) => error);\n\n // Don't render if no active errors\n if (activeErrors.length === 0) return null;\n\n return (\n <FieldErrorsRoot id={id} role=\"alert\" {...props}>\n {activeErrors.map(([key, error]) => {\n // Try custom error renderer first\n const customErrorElement = renderError?.(key, error);\n if (customErrorElement) {\n return (\n <FieldErrorsMessage key={key}>\n {customErrorElement}\n </FieldErrorsMessage>\n );\n }\n\n // Try default error renderer second\n const defaultErrorElement = renderDefaultError?.(key, error);\n if (defaultErrorElement) {\n return (\n <FieldErrorsMessage key={key}>\n {defaultErrorElement}\n </FieldErrorsMessage>\n );\n }\n\n // Try custom messages for built-in error types first\n const customMessage = getCustomMessage(key, customMessages);\n if (customMessage) {\n return (\n <FieldErrorsMessage key={key}>{customMessage}</FieldErrorsMessage>\n );\n }\n\n // Fall back to built-in localized messages\n const builtInMessage = getBuiltInMessage(key);\n if (builtInMessage) {\n return (\n <FieldErrorsMessage key={key}>{builtInMessage}</FieldErrorsMessage>\n );\n }\n\n // If no renderer handles it, render nothing\n return null;\n })}\n </FieldErrorsRoot>\n );\n};\n\n// Static properties for backwards compatibility with UI-Kit\nFieldErrors.displayName = \"FieldErrors\";\nFieldErrors.errorTypes = FieldErrorTypes;\n// Static properties for string conversion, mostly for testing\nFieldErrors.getBuiltInMessage = getBuiltInMessage;\nFieldErrors.getCustomMessage = getCustomMessage;\n"],"names":["withProvider","withContext","createSlotRecipeContext","FieldErrorsRoot","FieldErrorsMessage","messages","defineMessages","FieldErrorTypes","isObject","obj","getCustomMessage","key","customMessages","getBuiltInMessage","jsx","FormattedMessage","FieldErrors","id","errors","isVisible","renderError","renderDefaultError","props","activeErrors","error","customErrorElement","defaultErrorElement","customMessage","builtInMessage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field-errors-D2re_C_c.cjs.js","sources":["../../src/components/field-errors/field-errors.slots.tsx","../../src/components/field-errors/field-errors.i18n.ts","../../src/components/field-errors/field-errors.types.ts","../../src/components/field-errors/field-errors.tsx"],"sourcesContent":["import { createSlotRecipeContext } from \"@chakra-ui/react\";\nimport type { SlotComponent } from \"../../type-utils/slot-types\";\nimport type {\n FieldErrorsMessageSlotProps,\n FieldErrorsRootSlotProps,\n} from \"./field-errors.types\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"fieldErrors\",\n});\n\nexport const FieldErrorsRoot: SlotComponent<\n HTMLDivElement,\n FieldErrorsRootSlotProps\n> = withProvider<HTMLDivElement, FieldErrorsRootSlotProps>(\"div\", \"root\");\n\nexport const FieldErrorsMessage: SlotComponent<\n HTMLDivElement,\n FieldErrorsMessageSlotProps\n> = withContext<HTMLDivElement, FieldErrorsMessageSlotProps>(\"div\", \"message\");\n","import { defineMessages } from \"react-intl\";\n\nexport const messages = defineMessages({\n // Basic validation\n missingRequiredField: {\n id: \"Nimbus.FieldErrors.missingRequiredField\",\n description: \"Error message for missing required value\",\n defaultMessage: \"This field is required. Provide a value.\",\n },\n invalidValue: {\n id: \"Nimbus.FieldErrors.invalidValue\",\n description: \"Error message for invalid value or format\",\n defaultMessage: \"The provided value is invalid.\",\n },\n emptyValue: {\n id: \"Nimbus.FieldErrors.emptyValue\",\n description: \"Error message for empty value when content is required\",\n defaultMessage: \"This field cannot be empty.\",\n },\n\n // Length validation\n valueTooShort: {\n id: \"Nimbus.FieldErrors.valueTooShort\",\n description: \"Error message for minimum length validation\",\n defaultMessage: \"This value is too short.\",\n },\n valueTooLong: {\n id: \"Nimbus.FieldErrors.valueTooLong\",\n description: \"Error message for maximum length validation\",\n defaultMessage: \"This value is too long.\",\n },\n\n // Format validation\n invalidFormat: {\n id: \"Nimbus.FieldErrors.invalidFormat\",\n description: \"Error message for format validation\",\n defaultMessage: \"Please enter a valid format.\",\n },\n duplicateValue: {\n id: \"Nimbus.FieldErrors.duplicateValue\",\n description: \"Error message for duplicate value validation\",\n defaultMessage: \"This value is already in use. It must be unique.\",\n },\n\n // Numeric validation\n invalidNegativeNumber: {\n id: \"Nimbus.FieldErrors.invalidNegativeNumber\",\n description: \"Error message when negative number is used\",\n defaultMessage: \"Negative number is not supported.\",\n },\n invalidFractionalNumber: {\n id: \"Nimbus.FieldErrors.invalidFractionalNumber\",\n description: \"Error message when fractional number is used\",\n defaultMessage: \"A whole number is required.\",\n },\n valueBelowMinimum: {\n id: \"Nimbus.FieldErrors.valueBelowMinimum\",\n description: \"Error message for values below minimum threshold\",\n defaultMessage: \"Value must be greater than or equal to the minimum.\",\n },\n valueAboveMaximum: {\n id: \"Nimbus.FieldErrors.valueAboveMaximum\",\n description: \"Error message for values above maximum threshold\",\n defaultMessage: \"Value must be less than or equal to the maximum.\",\n },\n valueOutOfRange: {\n id: \"Nimbus.FieldErrors.valueOutOfRange\",\n description: \"Error message for values outside acceptable range\",\n defaultMessage: \"Value must be within the acceptable range.\",\n },\n\n // Server/async validation\n invalidFromServer: {\n id: \"Nimbus.FieldErrors.invalidFromServer\",\n description: \"Error message for server-side validation errors\",\n defaultMessage: \"Server validation failed. Please check your input.\",\n },\n resourceNotFound: {\n id: \"Nimbus.FieldErrors.resourceNotFound\",\n description: \"Error message when a resource is not found\",\n defaultMessage: \"The requested resource was not found.\",\n },\n valueBlocked: {\n id: \"Nimbus.FieldErrors.valueBlocked\",\n description: \"Error message for blocked or restricted values\",\n defaultMessage: \"This value is not allowed.\",\n },\n});\n","import type { ReactNode } from \"react\";\nimport type {\n HTMLChakraProps,\n SlotRecipeProps,\n UnstyledProp,\n} from \"@chakra-ui/react\";\nimport type { OmitInternalProps } from \"../../type-utils/omit-props\";\n\n// ============================================================\n// RECIPE PROPS\n// ============================================================\n\ntype FieldErrorsRecipeProps = SlotRecipeProps<\"fieldErrors\"> & UnstyledProp;\n\n// ============================================================\n// SLOT PROPS\n// ============================================================\n\nexport type FieldErrorsRootSlotProps = OmitInternalProps<\n HTMLChakraProps<\"div\", FieldErrorsRecipeProps>\n>;\n\nexport type FieldErrorsMessageSlotProps = HTMLChakraProps<\"div\">;\n\n// ============================================================\n// HELPER TYPES\n// ============================================================\n\nexport type FieldErrorsData = Record<string, boolean>;\n\nexport type TErrorRenderer = (key: string, error?: boolean) => ReactNode;\n\nexport const FieldErrorTypes = {\n MISSING: \"missing\",\n INVALID: \"invalid\",\n EMPTY: \"empty\",\n MIN_LENGTH: \"min\",\n MAX_LENGTH: \"max\",\n FORMAT: \"format\",\n DUPLICATE: \"duplicate\",\n NEGATIVE: \"negative\",\n FRACTIONS: \"fractions\",\n BELOW_MIN: \"belowMin\",\n ABOVE_MAX: \"aboveMax\",\n OUT_OF_RANGE: \"outOfRange\",\n INVALID_FROM_SERVER: \"invalidFromServer\",\n NOT_FOUND: \"notFound\",\n BLOCKED: \"blocked\",\n} as const;\n\nexport type TFieldErrorTypes =\n (typeof FieldErrorTypes)[keyof typeof FieldErrorTypes];\n\n// ============================================================\n// MAIN PROPS\n// ============================================================\n\nexport type FieldErrorsProps = FieldErrorsRootSlotProps & {\n /**\n * Object mapping error types to boolean values indicating presence\n */\n errors?: FieldErrorsData;\n /**\n * Whether the error messages are visible\n * @default true\n */\n isVisible?: boolean;\n /**\n * Custom render function for error messages\n */\n renderError?: TErrorRenderer;\n /**\n * Default render function for error messages when no custom renderer is provided\n */\n renderDefaultError?: TErrorRenderer;\n /**\n * Custom message overrides for specific error types\n */\n customMessages?: {\n /** Message for missing field error */\n missing?: ReactNode;\n /** Message for invalid field error */\n invalid?: ReactNode;\n /** Message for empty field error */\n empty?: ReactNode;\n /** Message for minimum length error */\n min?: ReactNode;\n /** Message for maximum length error */\n max?: ReactNode;\n /** Message for format error */\n format?: ReactNode;\n /** Message for duplicate value error */\n duplicate?: ReactNode;\n /** Message for negative value error */\n negative?: ReactNode;\n /** Message for fractional value error */\n fractions?: ReactNode;\n /** Message for below minimum value error */\n belowMin?: ReactNode;\n /** Message for above maximum value error */\n aboveMax?: ReactNode;\n /** Message for out of range error */\n outOfRange?: ReactNode;\n /** Message for invalid from server error */\n invalidFromServer?: ReactNode;\n /** Message for not found error */\n notFound?: ReactNode;\n /** Message for blocked error */\n blocked?: ReactNode;\n };\n};\n","import { FormattedMessage } from \"react-intl\";\nimport { FieldErrorsRoot, FieldErrorsMessage } from \"./field-errors.slots\";\nimport { messages } from \"./field-errors.i18n\";\nimport type { FieldErrorsProps } from \"./field-errors.types\";\nimport { FieldErrorTypes } from \"./field-errors.types\";\n\nconst isObject = (obj: unknown): boolean => typeof obj === \"object\";\n\n/**\n * Get custom message for a given error key\n */\nconst getCustomMessage = (\n key: string,\n customMessages?: FieldErrorsProps[\"customMessages\"]\n): React.ReactNode => {\n if (!customMessages) return null;\n\n // Map error keys to custom messages\n switch (key) {\n case FieldErrorTypes.MISSING:\n return customMessages.missing || null;\n case FieldErrorTypes.INVALID:\n return customMessages.invalid || null;\n case FieldErrorTypes.EMPTY:\n return customMessages.empty || null;\n case FieldErrorTypes.MIN_LENGTH:\n return customMessages.min || null;\n case FieldErrorTypes.MAX_LENGTH:\n return customMessages.max || null;\n case FieldErrorTypes.FORMAT:\n return customMessages.format || null;\n case FieldErrorTypes.DUPLICATE:\n return customMessages.duplicate || null;\n case FieldErrorTypes.NEGATIVE:\n return customMessages.negative || null;\n case FieldErrorTypes.FRACTIONS:\n return customMessages.fractions || null;\n case FieldErrorTypes.BELOW_MIN:\n return customMessages.belowMin || null;\n case FieldErrorTypes.ABOVE_MAX:\n return customMessages.aboveMax || null;\n case FieldErrorTypes.OUT_OF_RANGE:\n return customMessages.outOfRange || null;\n case FieldErrorTypes.INVALID_FROM_SERVER:\n return customMessages.invalidFromServer || null;\n case FieldErrorTypes.NOT_FOUND:\n return customMessages.notFound || null;\n case FieldErrorTypes.BLOCKED:\n return customMessages.blocked || null;\n default:\n return null;\n }\n};\n\n/**\n * Get built-in localized message for a given error key\n */\nconst getBuiltInMessage = (key: string): React.ReactNode => {\n switch (key) {\n // Basic validation\n case FieldErrorTypes.MISSING:\n return <FormattedMessage {...messages.missingRequiredField} />;\n case FieldErrorTypes.INVALID:\n return <FormattedMessage {...messages.invalidValue} />;\n case FieldErrorTypes.EMPTY:\n return <FormattedMessage {...messages.emptyValue} />;\n\n // Length validation\n case FieldErrorTypes.MIN_LENGTH:\n return <FormattedMessage {...messages.valueTooShort} />;\n case FieldErrorTypes.MAX_LENGTH:\n return <FormattedMessage {...messages.valueTooLong} />;\n\n // Format validation\n case FieldErrorTypes.FORMAT:\n return <FormattedMessage {...messages.invalidFormat} />;\n case FieldErrorTypes.DUPLICATE:\n return <FormattedMessage {...messages.duplicateValue} />;\n\n // Numeric validation\n case FieldErrorTypes.NEGATIVE:\n return <FormattedMessage {...messages.invalidNegativeNumber} />;\n case FieldErrorTypes.FRACTIONS:\n return <FormattedMessage {...messages.invalidFractionalNumber} />;\n case FieldErrorTypes.BELOW_MIN:\n return <FormattedMessage {...messages.valueBelowMinimum} />;\n case FieldErrorTypes.ABOVE_MAX:\n return <FormattedMessage {...messages.valueAboveMaximum} />;\n case FieldErrorTypes.OUT_OF_RANGE:\n return <FormattedMessage {...messages.valueOutOfRange} />;\n\n // Server/async validation\n case FieldErrorTypes.INVALID_FROM_SERVER:\n return <FormattedMessage {...messages.invalidFromServer} />;\n case FieldErrorTypes.NOT_FOUND:\n return <FormattedMessage {...messages.resourceNotFound} />;\n case FieldErrorTypes.BLOCKED:\n return <FormattedMessage {...messages.valueBlocked} />;\n\n default:\n return null;\n }\n};\n\n/**\n * # FieldErrors\n *\n * Renders error messages based on error object configuration.\n * Provides backwards compatibility with UI-Kit FieldErrors while integrating\n * with Nimbus design system patterns.\n *\n * Supports custom error renderers and localized built-in error messages\n * for common validation scenarios like missing required fields.\n *\n * @see {@link https://nimbus.commercetools.com/components/field-errors}\n *\n * @supportsStyleProps\n */\nexport const FieldErrors = ({\n id,\n errors,\n isVisible = true, // Default to true for backwards compatibility, but will be auto-handled in future\n renderError,\n renderDefaultError,\n customMessages,\n ...props\n}: FieldErrorsProps) => {\n // Don't render if not visible or no errors\n if (!isVisible) return null;\n if (!errors || !isObject(errors)) return null;\n\n // Filter to only show truthy errors\n const activeErrors = Object.entries(errors).filter(([, error]) => error);\n\n // Don't render if no active errors\n if (activeErrors.length === 0) return null;\n\n return (\n <FieldErrorsRoot id={id} role=\"alert\" {...props}>\n {activeErrors.map(([key, error]) => {\n // Try custom error renderer first\n const customErrorElement = renderError?.(key, error);\n if (customErrorElement) {\n return (\n <FieldErrorsMessage key={key}>\n {customErrorElement}\n </FieldErrorsMessage>\n );\n }\n\n // Try default error renderer second\n const defaultErrorElement = renderDefaultError?.(key, error);\n if (defaultErrorElement) {\n return (\n <FieldErrorsMessage key={key}>\n {defaultErrorElement}\n </FieldErrorsMessage>\n );\n }\n\n // Try custom messages for built-in error types first\n const customMessage = getCustomMessage(key, customMessages);\n if (customMessage) {\n return (\n <FieldErrorsMessage key={key}>{customMessage}</FieldErrorsMessage>\n );\n }\n\n // Fall back to built-in localized messages\n const builtInMessage = getBuiltInMessage(key);\n if (builtInMessage) {\n return (\n <FieldErrorsMessage key={key}>{builtInMessage}</FieldErrorsMessage>\n );\n }\n\n // If no renderer handles it, render nothing\n return null;\n })}\n </FieldErrorsRoot>\n );\n};\n\n// Static properties for backwards compatibility with UI-Kit\nFieldErrors.displayName = \"FieldErrors\";\nFieldErrors.errorTypes = FieldErrorTypes;\n// Static properties for string conversion, mostly for testing\nFieldErrors.getBuiltInMessage = getBuiltInMessage;\nFieldErrors.getCustomMessage = getCustomMessage;\n"],"names":["withProvider","withContext","createSlotRecipeContext","FieldErrorsRoot","FieldErrorsMessage","messages","defineMessages","FieldErrorTypes","isObject","obj","getCustomMessage","key","customMessages","getBuiltInMessage","jsx","FormattedMessage","FieldErrors","id","errors","isVisible","renderError","renderDefaultError","props","activeErrors","error","customErrorElement","defaultErrorElement","customMessage","builtInMessage"],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsxs as M, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { M as j } from "./multiline-text-input-CfBy0_Co.es.js";
|
|
3
|
+
import { F as l } from "./form-field-D0GUo4Dx.es.js";
|
|
4
|
+
import { F as E } from "./field-errors-ClQprmQz.es.js";
|
|
5
|
+
const T = ({
|
|
6
|
+
id: s,
|
|
7
|
+
label: a,
|
|
8
|
+
description: r,
|
|
9
|
+
info: t,
|
|
10
|
+
errors: i,
|
|
11
|
+
onChange: d,
|
|
12
|
+
renderError: m,
|
|
13
|
+
touched: p = !1,
|
|
14
|
+
isRequired: c = !1,
|
|
15
|
+
isDisabled: f = !1,
|
|
16
|
+
isReadOnly: u = !1,
|
|
17
|
+
isInvalid: h = !1,
|
|
18
|
+
size: o = "md",
|
|
19
|
+
value: x,
|
|
20
|
+
placeholder: F,
|
|
21
|
+
...I
|
|
22
|
+
}) => {
|
|
23
|
+
const n = p && i && Object.values(i).some(Boolean);
|
|
24
|
+
return /* @__PURE__ */ M(
|
|
25
|
+
l.Root,
|
|
26
|
+
{
|
|
27
|
+
id: s,
|
|
28
|
+
size: o,
|
|
29
|
+
isRequired: c,
|
|
30
|
+
isDisabled: f,
|
|
31
|
+
isReadOnly: u,
|
|
32
|
+
isInvalid: n || h,
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ e(l.Label, { children: a }),
|
|
35
|
+
/* @__PURE__ */ e(l.Input, { children: /* @__PURE__ */ e(
|
|
36
|
+
j,
|
|
37
|
+
{
|
|
38
|
+
...I,
|
|
39
|
+
size: o,
|
|
40
|
+
placeholder: F,
|
|
41
|
+
onChange: d,
|
|
42
|
+
value: x
|
|
43
|
+
}
|
|
44
|
+
) }),
|
|
45
|
+
r && /* @__PURE__ */ e(l.Description, { children: r }),
|
|
46
|
+
n && /* @__PURE__ */ e(l.Error, { children: /* @__PURE__ */ e(E, { errors: i, renderError: m }) }),
|
|
47
|
+
t && /* @__PURE__ */ e(l.InfoBox, { children: t })
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
};
|
|
52
|
+
T.displayName = "MultilineTextInputField";
|
|
53
|
+
export {
|
|
54
|
+
T as M
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=multiline-text-input-field-Bg5pfHwS.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiline-text-input-field-Bg5pfHwS.es.js","sources":["../../src/patterns/fields/multiline-text-input-field/multiline-text-input-field.tsx"],"sourcesContent":["import { MultilineTextInput } from \"@/components/multiline-text-input/multiline-text-input\";\nimport type { MultilineTextInputFieldProps } from \"./multiline-text-input-field.types\";\nimport { FormField, FieldErrors } from \"@/components\";\n\n/**\n * # MultilineTextInputField\n *\n * A pre-composed form field component that combines MultilineTextInput with FormField features\n * like labels, descriptions, error handling, and validation feedback.\n *\n * This component provides a simple, flat API for common text area use cases and serves\n * as a drop-in replacement for UI-Kit's MultilineTextField, maintaining compatibility with the\n * same error format and localized error messages.\n *\n * @example\n * ```tsx\n * <MultilineTextInputField\n * label=\"Project description\"\n * description=\"Enter a descriptive summary for your project\"\n * placeholder=\"Describe your project...\"\n * value={value}\n * onChange={setValue}\n * errors={{ missing: true }}\n * isRequired\n * rows={4}\n * autoGrow\n * />\n * ```\n */\n\nexport const MultilineTextInputField = ({\n id,\n label,\n description,\n info,\n errors,\n onChange,\n renderError,\n touched = false,\n isRequired = false,\n isDisabled = false,\n isReadOnly = false,\n isInvalid = false,\n size = \"md\",\n value,\n placeholder,\n ...rest\n}: MultilineTextInputFieldProps) => {\n // Determine if we should show errors\n const hasErrors = touched && errors && Object.values(errors).some(Boolean);\n\n return (\n <FormField.Root\n id={id}\n size={size}\n isRequired={isRequired}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isInvalid={hasErrors || isInvalid}\n >\n <FormField.Label>{label}</FormField.Label>\n <FormField.Input>\n <MultilineTextInput\n {...rest}\n size={size}\n placeholder={placeholder}\n onChange={onChange}\n value={value}\n />\n </FormField.Input>\n {description && (\n <FormField.Description>{description}</FormField.Description>\n )}\n {hasErrors && (\n <FormField.Error>\n <FieldErrors errors={errors} renderError={renderError} />\n </FormField.Error>\n )}\n {info && <FormField.InfoBox>{info}</FormField.InfoBox>}\n </FormField.Root>\n );\n};\n\nMultilineTextInputField.displayName = \"MultilineTextInputField\";\n"],"names":["MultilineTextInputField","id","label","description","info","errors","onChange","renderError","touched","isRequired","isDisabled","isReadOnly","isInvalid","size","value","placeholder","rest","hasErrors","jsxs","FormField","jsx","MultilineTextInput","FieldErrors"],"mappings":";;;;AA8BO,MAAMA,IAA0B,CAAC;AAAA,EACtC,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,YAAAC,IAAa;AAAA,EACb,YAAAC,IAAa;AAAA,EACb,YAAAC,IAAa;AAAA,EACb,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAGC;AACL,MAAoC;AAElC,QAAMC,IAAYT,KAAWH,KAAU,OAAO,OAAOA,CAAM,EAAE,KAAK,OAAO;AAEzE,SACE,gBAAAa;AAAA,IAACC,EAAU;AAAA,IAAV;AAAA,MACC,IAAAlB;AAAA,MACA,MAAAY;AAAA,MACA,YAAAJ;AAAA,MACA,YAAAC;AAAA,MACA,YAAAC;AAAA,MACA,WAAWM,KAAaL;AAAA,MAExB,UAAA;AAAA,QAAA,gBAAAQ,EAACD,EAAU,OAAV,EAAiB,UAAAjB,EAAA,CAAM;AAAA,QACxB,gBAAAkB,EAACD,EAAU,OAAV,EACC,UAAA,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACE,GAAGL;AAAA,YACJ,MAAAH;AAAA,YACA,aAAAE;AAAA,YACA,UAAAT;AAAA,YACA,OAAAQ;AAAA,UAAA;AAAA,QAAA,GAEJ;AAAA,QACCX,KACC,gBAAAiB,EAACD,EAAU,aAAV,EAAuB,UAAAhB,GAAY;AAAA,QAErCc,uBACEE,EAAU,OAAV,EACC,UAAA,gBAAAC,EAACE,GAAA,EAAY,QAAAjB,GAAgB,aAAAE,EAAA,CAA0B,EAAA,CACzD;AAAA,QAEDH,KAAQ,gBAAAgB,EAACD,EAAU,SAAV,EAAmB,UAAAf,EAAA,CAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGxC;AAEAJ,EAAwB,cAAc;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),T=require("./multiline-text-input-SbQPKOlb.cjs.js"),l=require("./form-field-DD4nbalR.cjs.js"),q=require("./field-errors-D2re_C_c.cjs.js"),o=({id:d,label:u,description:r,info:s,errors:i,onChange:F,renderError:x,touched:c=!1,isRequired:a=!1,isDisabled:m=!1,isReadOnly:j=!1,isInvalid:I=!1,size:t="md",value:f,placeholder:h,...p})=>{const n=c&&i&&Object.values(i).some(Boolean);return e.jsxs(l.FormField.Root,{id:d,size:t,isRequired:a,isDisabled:m,isReadOnly:j,isInvalid:n||I,children:[e.jsx(l.FormField.Label,{children:u}),e.jsx(l.FormField.Input,{children:e.jsx(T.MultilineTextInput,{...p,size:t,placeholder:h,onChange:F,value:f})}),r&&e.jsx(l.FormField.Description,{children:r}),n&&e.jsx(l.FormField.Error,{children:e.jsx(q.FieldErrors,{errors:i,renderError:x})}),s&&e.jsx(l.FormField.InfoBox,{children:s})]})};o.displayName="MultilineTextInputField";exports.MultilineTextInputField=o;
|
|
2
|
+
//# sourceMappingURL=multiline-text-input-field-XzZ9n7TK.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiline-text-input-field-XzZ9n7TK.cjs.js","sources":["../../src/patterns/fields/multiline-text-input-field/multiline-text-input-field.tsx"],"sourcesContent":["import { MultilineTextInput } from \"@/components/multiline-text-input/multiline-text-input\";\nimport type { MultilineTextInputFieldProps } from \"./multiline-text-input-field.types\";\nimport { FormField, FieldErrors } from \"@/components\";\n\n/**\n * # MultilineTextInputField\n *\n * A pre-composed form field component that combines MultilineTextInput with FormField features\n * like labels, descriptions, error handling, and validation feedback.\n *\n * This component provides a simple, flat API for common text area use cases and serves\n * as a drop-in replacement for UI-Kit's MultilineTextField, maintaining compatibility with the\n * same error format and localized error messages.\n *\n * @example\n * ```tsx\n * <MultilineTextInputField\n * label=\"Project description\"\n * description=\"Enter a descriptive summary for your project\"\n * placeholder=\"Describe your project...\"\n * value={value}\n * onChange={setValue}\n * errors={{ missing: true }}\n * isRequired\n * rows={4}\n * autoGrow\n * />\n * ```\n */\n\nexport const MultilineTextInputField = ({\n id,\n label,\n description,\n info,\n errors,\n onChange,\n renderError,\n touched = false,\n isRequired = false,\n isDisabled = false,\n isReadOnly = false,\n isInvalid = false,\n size = \"md\",\n value,\n placeholder,\n ...rest\n}: MultilineTextInputFieldProps) => {\n // Determine if we should show errors\n const hasErrors = touched && errors && Object.values(errors).some(Boolean);\n\n return (\n <FormField.Root\n id={id}\n size={size}\n isRequired={isRequired}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isInvalid={hasErrors || isInvalid}\n >\n <FormField.Label>{label}</FormField.Label>\n <FormField.Input>\n <MultilineTextInput\n {...rest}\n size={size}\n placeholder={placeholder}\n onChange={onChange}\n value={value}\n />\n </FormField.Input>\n {description && (\n <FormField.Description>{description}</FormField.Description>\n )}\n {hasErrors && (\n <FormField.Error>\n <FieldErrors errors={errors} renderError={renderError} />\n </FormField.Error>\n )}\n {info && <FormField.InfoBox>{info}</FormField.InfoBox>}\n </FormField.Root>\n );\n};\n\nMultilineTextInputField.displayName = \"MultilineTextInputField\";\n"],"names":["MultilineTextInputField","id","label","description","info","errors","onChange","renderError","touched","isRequired","isDisabled","isReadOnly","isInvalid","size","value","placeholder","rest","hasErrors","jsxs","FormField","jsx","MultilineTextInput","FieldErrors"],"mappings":"4LA8BaA,EAA0B,CAAC,CACtC,GAAAC,EACA,MAAAC,EACA,YAAAC,EACA,KAAAC,EACA,OAAAC,EACA,SAAAC,EACA,YAAAC,EACA,QAAAC,EAAU,GACV,WAAAC,EAAa,GACb,WAAAC,EAAa,GACb,WAAAC,EAAa,GACb,UAAAC,EAAY,GACZ,KAAAC,EAAO,KACP,MAAAC,EACA,YAAAC,EACA,GAAGC,CACL,IAAoC,CAElC,MAAMC,EAAYT,GAAWH,GAAU,OAAO,OAAOA,CAAM,EAAE,KAAK,OAAO,EAEzE,OACEa,EAAAA,KAACC,EAAAA,UAAU,KAAV,CACC,GAAAlB,EACA,KAAAY,EACA,WAAAJ,EACA,WAAAC,EACA,WAAAC,EACA,UAAWM,GAAaL,EAExB,SAAA,CAAAQ,EAAAA,IAACD,EAAAA,UAAU,MAAV,CAAiB,SAAAjB,CAAA,CAAM,EACxBkB,EAAAA,IAACD,EAAAA,UAAU,MAAV,CACC,SAAAC,EAAAA,IAACC,EAAAA,mBAAA,CACE,GAAGL,EACJ,KAAAH,EACA,YAAAE,EACA,SAAAT,EACA,MAAAQ,CAAA,CAAA,EAEJ,EACCX,GACCiB,EAAAA,IAACD,EAAAA,UAAU,YAAV,CAAuB,SAAAhB,EAAY,EAErCc,SACEE,YAAU,MAAV,CACC,SAAAC,MAACE,EAAAA,YAAA,CAAY,OAAAjB,EAAgB,YAAAE,CAAA,CAA0B,CAAA,CACzD,EAEDH,GAAQgB,EAAAA,IAACD,EAAAA,UAAU,QAAV,CAAmB,SAAAf,CAAA,CAAK,CAAA,CAAA,CAAA,CAGxC,EAEAJ,EAAwB,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("../chunks/date-range-picker-field-D6t9Gpum.cjs.js"),t=require("../chunks/money-input-field-q0tzoGI0.cjs.js"),i=require("../chunks/number-input-field-l1dav8Ry.cjs.js"),
|
|
1
|
+
"use strict";const e=require("../chunks/date-range-picker-field-D6t9Gpum.cjs.js"),t=require("../chunks/money-input-field-q0tzoGI0.cjs.js"),i=require("../chunks/multiline-text-input-field-XzZ9n7TK.cjs.js"),n=require("../chunks/number-input-field-l1dav8Ry.cjs.js"),u=require("../chunks/search-input-field-Dn4OknB0.cjs.js"),l=require("../chunks/text-input-field-Ct5ITNC8.cjs.js");exports.DateRangePickerField=e.DateRangePickerField;exports.MoneyInputField=t.MoneyInputField;exports.MultilineTextInputField=i.MultilineTextInputField;exports.NumberInputField=n.NumberInputField;exports.SearchInputField=u.SearchInputField;exports.TextInputField=l.TextInputField;
|
|
2
2
|
//# sourceMappingURL=fields.cjs.map
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { D as
|
|
1
|
+
import { D as t } from "../chunks/date-range-picker-field-Cec21dDg.es.js";
|
|
2
2
|
import { M as p } from "../chunks/money-input-field-DU0ULCN9.es.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { M as i } from "../chunks/multiline-text-input-field-Bg5pfHwS.es.js";
|
|
4
|
+
import { N as n } from "../chunks/number-input-field-Dw4NznXb.es.js";
|
|
5
|
+
import { S as m } from "../chunks/search-input-field-DASR5Tf8.es.js";
|
|
5
6
|
import { T as d } from "../chunks/text-input-field-DnNkliBC.es.js";
|
|
6
7
|
export {
|
|
7
|
-
|
|
8
|
+
t as DateRangePickerField,
|
|
8
9
|
p as MoneyInputField,
|
|
9
|
-
i as
|
|
10
|
-
n as
|
|
10
|
+
i as MultilineTextInputField,
|
|
11
|
+
n as NumberInputField,
|
|
12
|
+
m as SearchInputField,
|
|
11
13
|
d as TextInputField
|
|
12
14
|
};
|
|
13
15
|
//# sourceMappingURL=fields.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fields.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiline-text-input-field.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiline-text-input-field.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("../chunks/date-range-picker-field-D6t9Gpum.cjs.js"),t=require("../chunks/money-input-field-q0tzoGI0.cjs.js"),i=require("../chunks/number-input-field-l1dav8Ry.cjs.js"),
|
|
1
|
+
"use strict";const e=require("../chunks/date-range-picker-field-D6t9Gpum.cjs.js"),t=require("../chunks/money-input-field-q0tzoGI0.cjs.js"),i=require("../chunks/multiline-text-input-field-XzZ9n7TK.cjs.js"),n=require("../chunks/number-input-field-l1dav8Ry.cjs.js"),u=require("../chunks/search-input-field-Dn4OknB0.cjs.js"),l=require("../chunks/text-input-field-Ct5ITNC8.cjs.js");exports.DateRangePickerField=e.DateRangePickerField;exports.MoneyInputField=t.MoneyInputField;exports.MultilineTextInputField=i.MultilineTextInputField;exports.NumberInputField=n.NumberInputField;exports.SearchInputField=u.SearchInputField;exports.TextInputField=l.TextInputField;
|
|
2
2
|
//# sourceMappingURL=patterns.cjs.map
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { D as
|
|
1
|
+
import { D as t } from "../chunks/date-range-picker-field-Cec21dDg.es.js";
|
|
2
2
|
import { M as p } from "../chunks/money-input-field-DU0ULCN9.es.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { M as i } from "../chunks/multiline-text-input-field-Bg5pfHwS.es.js";
|
|
4
|
+
import { N as n } from "../chunks/number-input-field-Dw4NznXb.es.js";
|
|
5
|
+
import { S as m } from "../chunks/search-input-field-DASR5Tf8.es.js";
|
|
5
6
|
import { T as d } from "../chunks/text-input-field-DnNkliBC.es.js";
|
|
6
7
|
export {
|
|
7
|
-
|
|
8
|
+
t as DateRangePickerField,
|
|
8
9
|
p as MoneyInputField,
|
|
9
|
-
i as
|
|
10
|
-
n as
|
|
10
|
+
i as MultilineTextInputField,
|
|
11
|
+
n as NumberInputField,
|
|
12
|
+
m as SearchInputField,
|
|
11
13
|
d as TextInputField
|
|
12
14
|
};
|
|
13
15
|
//# sourceMappingURL=patterns.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"patterns.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const oe=require("./chunks/date-range-picker-field-D6t9Gpum.cjs.js"),ne=require("./chunks/money-input-field-q0tzoGI0.cjs.js"),ae=require("./chunks/number-input-field-l1dav8Ry.cjs.js"),ie=require("./chunks/search-input-field-Dn4OknB0.cjs.js"),ue=require("./chunks/text-input-field-Ct5ITNC8.cjs.js"),ce=require("./chunks/index-Ojb_3rzD.cjs.js"),W=require("./chunks/rich-text-input-BCVDj0UL.cjs.js"),g=require("react"),le=require("./chunks/avatar-wRR1leVi.cjs.js"),se=require("./chunks/box-CWni3A32.cjs.js"),de=require("./chunks/button-DM5U4Up3.cjs.js"),pe=require("./chunks/code-q31e3vT2.cjs.js"),ge=require("./chunks/combobox-qEHEJEGC.cjs.js"),me=require("./chunks/dialog-C0OWp1vo.cjs.js"),X=require("./chunks/field-errors-D2re_C_c.cjs.js"),At=require("@chakra-ui/react/flex"),fe=require("./chunks/group-Cjq5lNQD.cjs.js"),be=require("./chunks/heading-DWweWKGQ.cjs.js"),ye=require("./chunks/nimbus-i18n-provider-BbsapOze.cjs.js"),Te=require("./chunks/icon-button-BJBGpUhs.cjs.js"),Ce=require("./chunks/icon-toggle-button-Bv6aXjsZ.cjs.js"),he=require("./chunks/image-CGOYoc2s.cjs.js"),ve=require("./chunks/kbd-tKeWcdmy.cjs.js"),De=require("./chunks/link-CI7W-6L3.cjs.js"),E=require("./chunks/list-DJC9BmoC.cjs.js"),L=require("./chunks/draggable-list-BqkN0qq8.cjs.js"),Ie=require("./chunks/simple-grid-Cd2MJxSX.cjs.js"),Mt=require("@chakra-ui/react/table"),qe=require("./chunks/text-BtRhIklG.cjs.js"),we=require("./chunks/tooltip-Bv-QlJ1O.cjs.js"),Se=require("./chunks/make-element-focusable-Cdmdc8sd.cjs.js"),Pt=require("react-intl"),Q=require("./chunks/nimbus-provider-BR7KA218.cjs.js"),_e=require("./chunks/checkbox-CsHNMNYl.cjs.js"),x=require("./chunks/collapsible-motion-Dl-BpfqM.cjs.js"),Fe=require("./chunks/stack-CIN13EDn.cjs.js"),ke=require("./chunks/visually-hidden-BjtXUoFK.cjs.js"),Re=require("./chunks/text-input-ClVq3LKb.cjs.js"),Ee=require("./chunks/number-input-BYPFMk5J.cjs.js"),Le=require("./chunks/grid-Chuw1xje.cjs.js"),xe=require("./chunks/select-lV0v1J4o.cjs.js"),Ae=require("./chunks/separator-C3-b67_7.cjs.js"),Me=require("./chunks/spacer-BvQD2vU1.cjs.js"),Pe=require("./chunks/accordion-DzJZyt6v.cjs.js"),k=require("./chunks/accordion.content-AdEoVTQo.cjs.js"),_=require("./chunks/alert-CR_RRHXj.cjs.js"),Be=require("./chunks/badge-5F6i4KSF.cjs.js"),A=require("./chunks/card-CFuBCltm.cjs.js"),w=require("./chunks/form-field-DD4nbalR.cjs.js"),Ne=require("./chunks/icon-D39U--jA.cjs.js"),Ke=require("./chunks/inline-svg-Yb2OyzRw.cjs.js"),He=require("./chunks/loading-spinner-DsKcjJ2b.cjs.js"),Oe=require("./chunks/password-input-DEPGgEer.cjs.js"),Ge=require("./chunks/search-input-DWCqEUFA.cjs.js"),Ue=require("./chunks/scoped-search-input-CEPK4gNi.cjs.js"),je=require("./chunks/split-button-Ce_rS1KG.cjs.js"),Ve=require("./chunks/time-input-TM8dz3sl.cjs.js"),ze=require("./chunks/multiline-text-input-SbQPKOlb.cjs.js"),$e=require("./chunks/money-input-OpjFLPtv.cjs.js"),We=require("./chunks/radio-input-Dp_J03_M.cjs.js"),Xe=require("./chunks/switch-CGC5nb_t.cjs.js"),Qe=require("./chunks/tag-group-BYBLgF0r.cjs.js"),Ye=require("./chunks/toggle-button-BP1Z93Un.cjs.js"),H=require("./chunks/toggle-button-group-Lfn3zYmC.cjs.js"),Ze=require("./chunks/date-input-CZJdMw98.cjs.js"),Je=require("./chunks/calendar-C26Et_m-.cjs.js"),et=require("./chunks/date-picker-BiyWtK0H.cjs.js"),tt=require("./chunks/progress-bar-CDrMY2Tr.cjs.js"),rt=require("./chunks/range-calendar-BnGClIZT.cjs.js"),I=require("./chunks/menu-BlBkUZxr.cjs.js"),ot=require("./chunks/date-range-picker-ICuIhTNc.cjs.js"),nt=require("./chunks/toolbar-DF_NHKJ0.cjs.js"),b=require("./chunks/data-table-CZGgyBIj.cjs.js"),at=require("./chunks/pagination-DUr6sdQn.cjs.js"),D=require("./chunks/drawer-DYuRnQnQ.cjs.js"),F=require("./chunks/tabs-DLuHUSsH.cjs.js"),it=require("./chunks/localized-field-B8TEVOmF.cjs.js");require("react/jsx-runtime");const Y=["shift","alt","meta","mod","ctrl","control"],ut={esc:"escape",return:"enter",left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",OSLeft:"meta",OSRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function S(e){return(ut[e.trim()]||e.trim()).toLowerCase().replace(/key|digit|numpad/,"")}function Z(e){return Y.includes(e)}function P(e,t=","){return e.toLowerCase().split(t)}function B(e,t="+",r=">",i=!1,u){let n=[],a=!1;e=e.trim(),e.includes(r)?(a=!0,n=e.toLocaleLowerCase().split(r).map(f=>S(f))):n=e.toLocaleLowerCase().split(t).map(f=>S(f));const d={alt:n.includes("alt"),ctrl:n.includes("ctrl")||n.includes("control"),shift:n.includes("shift"),meta:n.includes("meta"),mod:n.includes("mod"),useKey:i},l=n.filter(f=>!Y.includes(f));return{...d,keys:l,description:u,isSequence:a,hotkey:e}}const q=new Set;function O(e){return Array.isArray(e)}function ct(e,t=","){return(O(e)?e:e.split(t)).every(r=>q.has(r.trim().toLowerCase()))}function lt(e){const t=Array.isArray(e)?e:[e];q.has("meta")&&q.forEach(r=>!Z(r)&&q.delete(r.toLowerCase())),t.forEach(r=>q.add(r.toLowerCase()))}function st(e){const t=Array.isArray(e)?e:[e];e==="meta"?q.clear():t.forEach(r=>q.delete(r.toLowerCase()))}function dt(e,t,r){(typeof r=="function"&&r(e,t)||r===!0)&&e.preventDefault()}function pt(e,t,r){return typeof r=="function"?r(e,t):r===!0||r===void 0}const gt=["input","textarea","select","searchbox","slider","spinbutton","menuitem","menuitemcheckbox","menuitemradio","option","radio","textbox"];function mt(e){return J(e,gt)}function J(e,t=!1){const{target:r,composed:i}=e;let u,n;return ft(r)&&i?(u=e.composedPath()[0]&&e.composedPath()[0].tagName,n=e.composedPath()[0]&&e.composedPath()[0].role):(u=r&&r.tagName,n=r&&r.role),O(t)?!!(u&&t&&t.some(a=>a.toLowerCase()===u.toLowerCase()||a===n)):!!(u&&t&&t)}function ft(e){return!!e.tagName&&!e.tagName.startsWith("-")&&e.tagName.includes("-")}function bt(e,t){return e.length===0&&t?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a <HotkeysProvider>'),!0):t?e.some(r=>t.includes(r))||e.includes("*"):!0}const yt=(e,t,r=!1)=>{const{alt:i,meta:u,mod:n,shift:a,ctrl:d,keys:l,useKey:f}=t,{code:y,key:o,ctrlKey:s,metaKey:T,shiftKey:C,altKey:p}=e,m=S(y);if(f&&l?.length===1&&l.includes(o))return!0;if(!l?.includes(m)&&!["ctrl","control","unknown","meta","alt","shift","os"].includes(m))return!1;if(!r){if(i!==p&&m!=="alt"||a!==C&&m!=="shift")return!1;if(n){if(!T&&!s)return!1}else if(u!==T&&m!=="meta"&&m!=="os"||d!==s&&m!=="ctrl"&&m!=="control")return!1}return l&&l.length===1&&l.includes(m)?!0:l?ct(l):!l},Tt=g.createContext(void 0),Ct=()=>g.useContext(Tt);function ee(e,t){return e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce((r,i)=>r&&ee(e[i],t[i]),!0):e===t}const ht=g.createContext({hotkeys:[],activeScopes:[],toggleScope:()=>{},enableScope:()=>{},disableScope:()=>{}}),vt=()=>g.useContext(ht);function Dt(e){const t=g.useRef(void 0);return ee(t.current,e)||(t.current=e),t.current}const V=e=>{e.stopPropagation(),e.preventDefault(),e.stopImmediatePropagation()},It=typeof window<"u"?g.useLayoutEffect:g.useEffect;function qt(e,t,r,i){const u=g.useRef(null),n=g.useRef(!1),a=Array.isArray(r)?Array.isArray(i)?void 0:i:r,d=O(e)?e.join(a?.delimiter):e,l=Array.isArray(r)?r:Array.isArray(i)?i:void 0,f=g.useCallback(t,l??[]),y=g.useRef(f);l?y.current=f:y.current=t;const o=Dt(a),{activeScopes:s}=vt(),T=Ct();return It(()=>{if(o?.enabled===!1||!bt(s,o?.scopes))return;let C=[],p;const m=(c,j=!1)=>{if(!(mt(c)&&!J(c,o?.enableOnFormTags))){if(u.current!==null){const v=u.current.getRootNode();if((v instanceof Document||v instanceof ShadowRoot)&&v.activeElement!==u.current&&!u.current.contains(v.activeElement)){V(c);return}}c.target?.isContentEditable&&!o?.enableOnContentEditable||P(d,o?.delimiter).forEach(v=>{if(v.includes(o?.splitKey??"+")&&v.includes(o?.sequenceSplitKey??">")){console.warn(`Hotkey ${v} contains both ${o?.splitKey??"+"} and ${o?.sequenceSplitKey??">"} which is not supported.`);return}const h=B(v,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description);if(h.isSequence){p=setTimeout(()=>{C=[]},o?.sequenceTimeoutMs??1e3);const M=h.useKey?c.key:S(c.code);if(Z(M.toLowerCase()))return;C.push(M);const re=h.keys?.[C.length-1];if(M!==re){C=[],p&&clearTimeout(p);return}C.length===h.keys?.length&&(y.current(c,h),p&&clearTimeout(p),C=[])}else if(yt(c,h,o?.ignoreModifiers)||h.keys?.includes("*")){if(o?.ignoreEventWhen?.(c)||j&&n.current)return;if(dt(c,h,o?.preventDefault),!pt(c,h,o?.enabled)){V(c);return}y.current(c,h),j||(n.current=!0)}})}},G=c=>{c.code!==void 0&&(lt(S(c.code)),(o?.keydown===void 0&&o?.keyup!==!0||o?.keydown)&&m(c))},U=c=>{c.code!==void 0&&(st(S(c.code)),n.current=!1,o?.keyup&&m(c,!0))},R=u.current||a?.document||document;return R.addEventListener("keyup",U,a?.eventListenerOptions),R.addEventListener("keydown",G,a?.eventListenerOptions),T&&P(d,o?.delimiter).forEach(c=>T.addHotkey(B(c,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description))),()=>{R.removeEventListener("keyup",U,a?.eventListenerOptions),R.removeEventListener("keydown",G,a?.eventListenerOptions),T&&P(d,o?.delimiter).forEach(c=>T.removeHotkey(B(c,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description))),C=[],p&&clearTimeout(p)}},[d,o,s]),u}function wt(){var e=g.useRef(!1),t=g.useCallback(function(){return e.current},[]);return g.useEffect(function(){return e.current=!0,function(){e.current=!1}},[]),t}var St=function(e){e===void 0&&(e={});var t=g.useState(e),r=t[0],i=t[1],u=g.useCallback(function(n){i(function(a){return Object.assign({},a,n instanceof Function?n(a):n)})},[]);return[r,u]},N,z;function _t(){return z||(z=1,N=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],i=0;i<e.rangeCount;i++)r.push(e.getRangeAt(i));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null;break}return e.removeAllRanges(),function(){e.type==="Caret"&&e.removeAllRanges(),e.rangeCount||r.forEach(function(u){e.addRange(u)}),t&&t.focus()}}),N}var K,$;function Ft(){if($)return K;$=1;var e=_t(),t={"text/plain":"Text","text/html":"Url",default:"Text"},r="Copy to clipboard: #{key}, Enter";function i(n){var a=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return n.replace(/#{\s*key\s*}/g,a)}function u(n,a){var d,l,f,y,o,s,T=!1;a||(a={}),d=a.debug||!1;try{f=e(),y=document.createRange(),o=document.getSelection(),s=document.createElement("span"),s.textContent=n,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",function(p){if(p.stopPropagation(),a.format)if(p.preventDefault(),typeof p.clipboardData>"u"){d&&console.warn("unable to use e.clipboardData"),d&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var m=t[a.format]||t.default;window.clipboardData.setData(m,n)}else p.clipboardData.clearData(),p.clipboardData.setData(a.format,n);a.onCopy&&(p.preventDefault(),a.onCopy(p.clipboardData))}),document.body.appendChild(s),y.selectNodeContents(s),o.addRange(y);var C=document.execCommand("copy");if(!C)throw new Error("copy command was unsuccessful");T=!0}catch(p){d&&console.error("unable to copy using execCommand: ",p),d&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(a.format||"text",n),a.onCopy&&a.onCopy(window.clipboardData),T=!0}catch(m){d&&console.error("unable to copy using clipboardData: ",m),d&&console.error("falling back to prompt"),l=i("message"in a?a.message:r),window.prompt(l,n)}}finally{o&&(typeof o.removeRange=="function"?o.removeRange(y):o.removeAllRanges()),s&&document.body.removeChild(s),f()}return T}return K=u,K}var kt=Ft();const Rt=W.getDefaultExportFromCjs(kt);var Et=function(){var e=wt(),t=St({value:void 0,error:void 0,noUserInteraction:!0}),r=t[0],i=t[1],u=g.useCallback(function(n){if(e()){var a,d;try{if(typeof n!="string"&&typeof n!="number"){var l=new Error("Cannot copy typeof "+typeof n+" to clipboard, must be a string");process.env.NODE_ENV==="development"&&console.error(l),i({value:n,error:l,noUserInteraction:!0});return}else if(n===""){var l=new Error("Cannot copy empty string to clipboard.");process.env.NODE_ENV==="development"&&console.error(l),i({value:n,error:l,noUserInteraction:!0});return}d=n.toString(),a=Rt(d),i({value:d,error:void 0,noUserInteraction:a})}catch(f){i({value:d,error:f,noUserInteraction:a})}}},[]);return[r,u]};function Lt(){const[e,t]=g.useState(r());function r(){return document.documentElement.style.getPropertyValue("color-scheme")||localStorage.getItem("theme")||"light"}return g.useEffect(()=>{const i=document.documentElement,u=new MutationObserver(()=>{const n=r();t(n)});return u.observe(i,{attributes:!0,attributeFilter:["style"]}),()=>u.disconnect()},[]),e}function te(){const{resolvedTheme:e,setTheme:t}=Q.z();return{colorMode:e,setColorMode:t,toggleColorMode:()=>{t(e==="light"?"dark":"light")}}}function xt(e,t){const{colorMode:r}=te();return r==="light"?e:t}exports.DateRangePickerField=oe.DateRangePickerField;exports.MoneyInputField=ne.MoneyInputField;exports.NumberInputField=ae.NumberInputField;exports.SearchInputField=ie.SearchInputField;exports.TextInputField=ue.TextInputField;exports.system=ce.system;exports.RichTextInput=W.RichTextInput;exports.Avatar=le.Avatar;exports.Box=se.Box;exports.Button=de.Button;exports.Code=pe.Code;exports.ComboBox=ge.ComboBox;exports.Dialog=me.Dialog;exports.FieldErrorTypes=X.FieldErrorTypes;exports.FieldErrors=X.FieldErrors;exports.Group=fe.Group;exports.Heading=be.Heading;exports.NimbusI18nProvider=ye.NimbusI18nProvider;exports.IconButton=Te.IconButton;exports.IconToggleButton=Ce.IconToggleButton;exports.Image=he.Image;exports.Kbd=ve.Kbd;exports.Link=De.Link;exports.List=E.List;exports._ListIndicator=E.ListIndicator;exports._ListItem=E.ListItem;exports._ListRoot=E.ListRoot;exports.DraggableList=L.DraggableList;exports._DraggableListField=L.DraggableListField;exports._DraggableListItem=L.DraggableListItem;exports._DraggableListRoot=L.DraggableListRoot;exports.SimpleGrid=Ie.SimpleGrid;exports.Text=qe.Text;exports.Tooltip=we.Tooltip;exports.MakeElementFocusable=Se.MakeElementFocusable;exports.NimbusProvider=Q.NimbusProvider;exports.Checkbox=_e.Checkbox;exports.CollapsibleMotion=x.CollapsibleMotion;exports._CollapsibleMotionContent=x.CollapsibleMotionContent;exports._CollapsibleMotionRoot=x.CollapsibleMotionRoot;exports._CollapsibleMotionTrigger=x.CollapsibleMotionTrigger;exports.Stack=Fe.Stack;exports.VisuallyHidden=ke.VisuallyHidden;exports.TextInput=Re.TextInput;exports.NumberInput=Ee.NumberInput;exports.Grid=Le.Grid;exports.Select=xe.Select;exports.Separator=Ae.Separator;exports.Spacer=Me.Spacer;exports.Accordion=Pe.Accordion;exports._AccordionContent=k.AccordionContent;exports._AccordionHeader=k.AccordionHeader;exports._AccordionHeaderRightContent=k.AccordionHeaderRightContent;exports._AccordionItem=k.AccordionItem;exports._AccordionRoot=k.AccordionRoot;exports.Alert=_.Alert;exports._AlertActions=_.AlertActions;exports._AlertDescription=_.AlertDescription;exports._AlertDismissButton=_.AlertDismissButton;exports._AlertRoot=_.AlertRoot;exports._AlertTitle=_.AlertTitle;exports.Badge=Be.Badge;exports.Card=A.Card;exports._CardContent=A.CardContent;exports._CardHeader=A.CardHeader;exports._CardRoot=A.CardRoot;exports.FormField=w.FormField;exports._FormFieldDescription=w.FormFieldDescription;exports._FormFieldError=w.FormFieldError;exports._FormFieldInfoBox=w.FormFieldInfoBox;exports._FormFieldInput=w.FormFieldInput;exports._FormFieldLabel=w.FormFieldLabel;exports._FormFieldRoot=w.FormFieldRoot;exports.Icon=Ne.Icon;exports.InlineSvg=Ke.InlineSvg;exports.LoadingSpinner=He.LoadingSpinner;exports.PasswordInput=Oe.PasswordInput;exports.SearchInput=Ge.SearchInput;exports.ScopedSearchInput=Ue.ScopedSearchInput;exports.SplitButton=je.SplitButton;exports.TimeInput=Ve.TimeInput;exports.MultilineTextInput=ze.MultilineTextInput;exports.MoneyInput=$e.MoneyInput;exports.RadioInput=We.RadioInput;exports.Switch=Xe.Switch;exports.TagGroup=Qe.TagGroup;exports.ToggleButton=Ye.ToggleButton;exports.ToggleButtonGroup=H.ToggleButtonGroup;exports._ToggleButtonGroupButton=H.ToggleButtonGroupButton;exports._ToggleButtonGroupRoot=H.ToggleButtonGroupRoot;exports.DateInput=Ze.DateInput;exports.Calendar=Je.Calendar;exports.DatePicker=et.DatePicker;exports.ProgressBar=tt.ProgressBar;exports.RangeCalendar=rt.RangeCalendar;exports.Menu=I.Menu;exports._MenuContent=I.MenuContent;exports._MenuItem=I.MenuItem;exports._MenuRoot=I.MenuRoot;exports._MenuSection=I.MenuSection;exports._MenuSubmenu=I.MenuSubmenu;exports._MenuSubmenuTrigger=I.MenuSubmenuTrigger;exports._MenuTrigger=I.MenuTrigger;exports.DateRangePicker=ot.DateRangePicker;exports.Toolbar=nt.Toolbar;exports.DataTable=b.DataTable;exports.UPDATE_ACTIONS=b.UPDATE_ACTIONS;exports._DataTableBody=b.DataTableBody;exports._DataTableCell=b.DataTableCell;exports._DataTableColumn=b.DataTableColumn;exports._DataTableExpandButton=b.DataTableExpandButton;exports._DataTableFooter=b.DataTableFooter;exports._DataTableHeader=b.DataTableHeader;exports._DataTableManager=b.DataTableManager;exports._DataTableNestedIcon=b.DataTableNestedIcon;exports._DataTableRoot=b.DataTableRoot;exports._DataTableRow=b.DataTableRow;exports._DataTableSelectionCell=b.DataTableSelectionCell;exports._DataTableTable=b.DataTableTable;exports.Pagination=at.Pagination;exports.Drawer=D.Drawer;exports._DrawerBody=D.DrawerBody;exports._DrawerCloseTrigger=D.DrawerCloseTrigger;exports._DrawerContent=D.DrawerContent;exports._DrawerFooter=D.DrawerFooter;exports._DrawerHeader=D.DrawerHeader;exports._DrawerRoot=D.DrawerRoot;exports._DrawerTitle=D.DrawerTitle;exports._DrawerTrigger=D.DrawerTrigger;exports.Tabs=F.Tabs;exports._TabsList=F.TabsList;exports._TabsPanel=F.TabsPanel;exports._TabsPanels=F.TabsPanels;exports._TabsRoot=F.TabsRoot;exports._TabsTab=F.TabsTab;exports.LocalizedField=it.LocalizedField;exports.useColorMode=te;exports.useColorModeValue=xt;exports.useColorScheme=Lt;exports.useCopyToClipboard=Et;exports.useHotkeys=qt;
|
|
1
|
+
"use strict";const oe=require("./chunks/date-range-picker-field-D6t9Gpum.cjs.js"),ne=require("./chunks/money-input-field-q0tzoGI0.cjs.js"),ae=require("./chunks/multiline-text-input-field-XzZ9n7TK.cjs.js"),ie=require("./chunks/number-input-field-l1dav8Ry.cjs.js"),ue=require("./chunks/search-input-field-Dn4OknB0.cjs.js"),ce=require("./chunks/text-input-field-Ct5ITNC8.cjs.js"),le=require("./chunks/index-Ojb_3rzD.cjs.js"),W=require("./chunks/rich-text-input-BCVDj0UL.cjs.js"),g=require("react"),se=require("./chunks/avatar-wRR1leVi.cjs.js"),de=require("./chunks/box-CWni3A32.cjs.js"),pe=require("./chunks/button-DM5U4Up3.cjs.js"),ge=require("./chunks/code-q31e3vT2.cjs.js"),me=require("./chunks/combobox-qEHEJEGC.cjs.js"),fe=require("./chunks/dialog-C0OWp1vo.cjs.js"),X=require("./chunks/field-errors-D2re_C_c.cjs.js"),Mt=require("@chakra-ui/react/flex"),be=require("./chunks/group-Cjq5lNQD.cjs.js"),ye=require("./chunks/heading-DWweWKGQ.cjs.js"),Te=require("./chunks/nimbus-i18n-provider-BbsapOze.cjs.js"),Ce=require("./chunks/icon-button-BJBGpUhs.cjs.js"),he=require("./chunks/icon-toggle-button-Bv6aXjsZ.cjs.js"),ve=require("./chunks/image-CGOYoc2s.cjs.js"),Ie=require("./chunks/kbd-tKeWcdmy.cjs.js"),De=require("./chunks/link-CI7W-6L3.cjs.js"),E=require("./chunks/list-DJC9BmoC.cjs.js"),L=require("./chunks/draggable-list-BqkN0qq8.cjs.js"),qe=require("./chunks/simple-grid-Cd2MJxSX.cjs.js"),Pt=require("@chakra-ui/react/table"),we=require("./chunks/text-BtRhIklG.cjs.js"),Se=require("./chunks/tooltip-Bv-QlJ1O.cjs.js"),Fe=require("./chunks/make-element-focusable-Cdmdc8sd.cjs.js"),Bt=require("react-intl"),Q=require("./chunks/nimbus-provider-BR7KA218.cjs.js"),_e=require("./chunks/checkbox-CsHNMNYl.cjs.js"),x=require("./chunks/collapsible-motion-Dl-BpfqM.cjs.js"),ke=require("./chunks/stack-CIN13EDn.cjs.js"),Re=require("./chunks/visually-hidden-BjtXUoFK.cjs.js"),Ee=require("./chunks/text-input-ClVq3LKb.cjs.js"),Le=require("./chunks/number-input-BYPFMk5J.cjs.js"),xe=require("./chunks/grid-Chuw1xje.cjs.js"),Ae=require("./chunks/select-lV0v1J4o.cjs.js"),Me=require("./chunks/separator-C3-b67_7.cjs.js"),Pe=require("./chunks/spacer-BvQD2vU1.cjs.js"),Be=require("./chunks/accordion-DzJZyt6v.cjs.js"),k=require("./chunks/accordion.content-AdEoVTQo.cjs.js"),F=require("./chunks/alert-CR_RRHXj.cjs.js"),Ne=require("./chunks/badge-5F6i4KSF.cjs.js"),A=require("./chunks/card-CFuBCltm.cjs.js"),w=require("./chunks/form-field-DD4nbalR.cjs.js"),Ke=require("./chunks/icon-D39U--jA.cjs.js"),He=require("./chunks/inline-svg-Yb2OyzRw.cjs.js"),Oe=require("./chunks/loading-spinner-DsKcjJ2b.cjs.js"),Ge=require("./chunks/password-input-DEPGgEer.cjs.js"),Ue=require("./chunks/search-input-DWCqEUFA.cjs.js"),je=require("./chunks/scoped-search-input-CEPK4gNi.cjs.js"),Ve=require("./chunks/split-button-Ce_rS1KG.cjs.js"),ze=require("./chunks/time-input-TM8dz3sl.cjs.js"),$e=require("./chunks/multiline-text-input-SbQPKOlb.cjs.js"),We=require("./chunks/money-input-OpjFLPtv.cjs.js"),Xe=require("./chunks/radio-input-Dp_J03_M.cjs.js"),Qe=require("./chunks/switch-CGC5nb_t.cjs.js"),Ye=require("./chunks/tag-group-BYBLgF0r.cjs.js"),Ze=require("./chunks/toggle-button-BP1Z93Un.cjs.js"),H=require("./chunks/toggle-button-group-Lfn3zYmC.cjs.js"),Je=require("./chunks/date-input-CZJdMw98.cjs.js"),et=require("./chunks/calendar-C26Et_m-.cjs.js"),tt=require("./chunks/date-picker-BiyWtK0H.cjs.js"),rt=require("./chunks/progress-bar-CDrMY2Tr.cjs.js"),ot=require("./chunks/range-calendar-BnGClIZT.cjs.js"),D=require("./chunks/menu-BlBkUZxr.cjs.js"),nt=require("./chunks/date-range-picker-ICuIhTNc.cjs.js"),at=require("./chunks/toolbar-DF_NHKJ0.cjs.js"),b=require("./chunks/data-table-CZGgyBIj.cjs.js"),it=require("./chunks/pagination-DUr6sdQn.cjs.js"),I=require("./chunks/drawer-DYuRnQnQ.cjs.js"),_=require("./chunks/tabs-DLuHUSsH.cjs.js"),ut=require("./chunks/localized-field-B8TEVOmF.cjs.js");require("react/jsx-runtime");const Y=["shift","alt","meta","mod","ctrl","control"],ct={esc:"escape",return:"enter",left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",OSLeft:"meta",OSRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function S(e){return(ct[e.trim()]||e.trim()).toLowerCase().replace(/key|digit|numpad/,"")}function Z(e){return Y.includes(e)}function P(e,t=","){return e.toLowerCase().split(t)}function B(e,t="+",r=">",i=!1,u){let n=[],a=!1;e=e.trim(),e.includes(r)?(a=!0,n=e.toLocaleLowerCase().split(r).map(f=>S(f))):n=e.toLocaleLowerCase().split(t).map(f=>S(f));const d={alt:n.includes("alt"),ctrl:n.includes("ctrl")||n.includes("control"),shift:n.includes("shift"),meta:n.includes("meta"),mod:n.includes("mod"),useKey:i},l=n.filter(f=>!Y.includes(f));return{...d,keys:l,description:u,isSequence:a,hotkey:e}}const q=new Set;function O(e){return Array.isArray(e)}function lt(e,t=","){return(O(e)?e:e.split(t)).every(r=>q.has(r.trim().toLowerCase()))}function st(e){const t=Array.isArray(e)?e:[e];q.has("meta")&&q.forEach(r=>!Z(r)&&q.delete(r.toLowerCase())),t.forEach(r=>q.add(r.toLowerCase()))}function dt(e){const t=Array.isArray(e)?e:[e];e==="meta"?q.clear():t.forEach(r=>q.delete(r.toLowerCase()))}function pt(e,t,r){(typeof r=="function"&&r(e,t)||r===!0)&&e.preventDefault()}function gt(e,t,r){return typeof r=="function"?r(e,t):r===!0||r===void 0}const mt=["input","textarea","select","searchbox","slider","spinbutton","menuitem","menuitemcheckbox","menuitemradio","option","radio","textbox"];function ft(e){return J(e,mt)}function J(e,t=!1){const{target:r,composed:i}=e;let u,n;return bt(r)&&i?(u=e.composedPath()[0]&&e.composedPath()[0].tagName,n=e.composedPath()[0]&&e.composedPath()[0].role):(u=r&&r.tagName,n=r&&r.role),O(t)?!!(u&&t&&t.some(a=>a.toLowerCase()===u.toLowerCase()||a===n)):!!(u&&t&&t)}function bt(e){return!!e.tagName&&!e.tagName.startsWith("-")&&e.tagName.includes("-")}function yt(e,t){return e.length===0&&t?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a <HotkeysProvider>'),!0):t?e.some(r=>t.includes(r))||e.includes("*"):!0}const Tt=(e,t,r=!1)=>{const{alt:i,meta:u,mod:n,shift:a,ctrl:d,keys:l,useKey:f}=t,{code:y,key:o,ctrlKey:s,metaKey:T,shiftKey:C,altKey:p}=e,m=S(y);if(f&&l?.length===1&&l.includes(o))return!0;if(!l?.includes(m)&&!["ctrl","control","unknown","meta","alt","shift","os"].includes(m))return!1;if(!r){if(i!==p&&m!=="alt"||a!==C&&m!=="shift")return!1;if(n){if(!T&&!s)return!1}else if(u!==T&&m!=="meta"&&m!=="os"||d!==s&&m!=="ctrl"&&m!=="control")return!1}return l&&l.length===1&&l.includes(m)?!0:l?lt(l):!l},Ct=g.createContext(void 0),ht=()=>g.useContext(Ct);function ee(e,t){return e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce((r,i)=>r&&ee(e[i],t[i]),!0):e===t}const vt=g.createContext({hotkeys:[],activeScopes:[],toggleScope:()=>{},enableScope:()=>{},disableScope:()=>{}}),It=()=>g.useContext(vt);function Dt(e){const t=g.useRef(void 0);return ee(t.current,e)||(t.current=e),t.current}const V=e=>{e.stopPropagation(),e.preventDefault(),e.stopImmediatePropagation()},qt=typeof window<"u"?g.useLayoutEffect:g.useEffect;function wt(e,t,r,i){const u=g.useRef(null),n=g.useRef(!1),a=Array.isArray(r)?Array.isArray(i)?void 0:i:r,d=O(e)?e.join(a?.delimiter):e,l=Array.isArray(r)?r:Array.isArray(i)?i:void 0,f=g.useCallback(t,l??[]),y=g.useRef(f);l?y.current=f:y.current=t;const o=Dt(a),{activeScopes:s}=It(),T=ht();return qt(()=>{if(o?.enabled===!1||!yt(s,o?.scopes))return;let C=[],p;const m=(c,j=!1)=>{if(!(ft(c)&&!J(c,o?.enableOnFormTags))){if(u.current!==null){const v=u.current.getRootNode();if((v instanceof Document||v instanceof ShadowRoot)&&v.activeElement!==u.current&&!u.current.contains(v.activeElement)){V(c);return}}c.target?.isContentEditable&&!o?.enableOnContentEditable||P(d,o?.delimiter).forEach(v=>{if(v.includes(o?.splitKey??"+")&&v.includes(o?.sequenceSplitKey??">")){console.warn(`Hotkey ${v} contains both ${o?.splitKey??"+"} and ${o?.sequenceSplitKey??">"} which is not supported.`);return}const h=B(v,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description);if(h.isSequence){p=setTimeout(()=>{C=[]},o?.sequenceTimeoutMs??1e3);const M=h.useKey?c.key:S(c.code);if(Z(M.toLowerCase()))return;C.push(M);const re=h.keys?.[C.length-1];if(M!==re){C=[],p&&clearTimeout(p);return}C.length===h.keys?.length&&(y.current(c,h),p&&clearTimeout(p),C=[])}else if(Tt(c,h,o?.ignoreModifiers)||h.keys?.includes("*")){if(o?.ignoreEventWhen?.(c)||j&&n.current)return;if(pt(c,h,o?.preventDefault),!gt(c,h,o?.enabled)){V(c);return}y.current(c,h),j||(n.current=!0)}})}},G=c=>{c.code!==void 0&&(st(S(c.code)),(o?.keydown===void 0&&o?.keyup!==!0||o?.keydown)&&m(c))},U=c=>{c.code!==void 0&&(dt(S(c.code)),n.current=!1,o?.keyup&&m(c,!0))},R=u.current||a?.document||document;return R.addEventListener("keyup",U,a?.eventListenerOptions),R.addEventListener("keydown",G,a?.eventListenerOptions),T&&P(d,o?.delimiter).forEach(c=>T.addHotkey(B(c,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description))),()=>{R.removeEventListener("keyup",U,a?.eventListenerOptions),R.removeEventListener("keydown",G,a?.eventListenerOptions),T&&P(d,o?.delimiter).forEach(c=>T.removeHotkey(B(c,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description))),C=[],p&&clearTimeout(p)}},[d,o,s]),u}function St(){var e=g.useRef(!1),t=g.useCallback(function(){return e.current},[]);return g.useEffect(function(){return e.current=!0,function(){e.current=!1}},[]),t}var Ft=function(e){e===void 0&&(e={});var t=g.useState(e),r=t[0],i=t[1],u=g.useCallback(function(n){i(function(a){return Object.assign({},a,n instanceof Function?n(a):n)})},[]);return[r,u]},N,z;function _t(){return z||(z=1,N=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],i=0;i<e.rangeCount;i++)r.push(e.getRangeAt(i));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null;break}return e.removeAllRanges(),function(){e.type==="Caret"&&e.removeAllRanges(),e.rangeCount||r.forEach(function(u){e.addRange(u)}),t&&t.focus()}}),N}var K,$;function kt(){if($)return K;$=1;var e=_t(),t={"text/plain":"Text","text/html":"Url",default:"Text"},r="Copy to clipboard: #{key}, Enter";function i(n){var a=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return n.replace(/#{\s*key\s*}/g,a)}function u(n,a){var d,l,f,y,o,s,T=!1;a||(a={}),d=a.debug||!1;try{f=e(),y=document.createRange(),o=document.getSelection(),s=document.createElement("span"),s.textContent=n,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",function(p){if(p.stopPropagation(),a.format)if(p.preventDefault(),typeof p.clipboardData>"u"){d&&console.warn("unable to use e.clipboardData"),d&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var m=t[a.format]||t.default;window.clipboardData.setData(m,n)}else p.clipboardData.clearData(),p.clipboardData.setData(a.format,n);a.onCopy&&(p.preventDefault(),a.onCopy(p.clipboardData))}),document.body.appendChild(s),y.selectNodeContents(s),o.addRange(y);var C=document.execCommand("copy");if(!C)throw new Error("copy command was unsuccessful");T=!0}catch(p){d&&console.error("unable to copy using execCommand: ",p),d&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(a.format||"text",n),a.onCopy&&a.onCopy(window.clipboardData),T=!0}catch(m){d&&console.error("unable to copy using clipboardData: ",m),d&&console.error("falling back to prompt"),l=i("message"in a?a.message:r),window.prompt(l,n)}}finally{o&&(typeof o.removeRange=="function"?o.removeRange(y):o.removeAllRanges()),s&&document.body.removeChild(s),f()}return T}return K=u,K}var Rt=kt();const Et=W.getDefaultExportFromCjs(Rt);var Lt=function(){var e=St(),t=Ft({value:void 0,error:void 0,noUserInteraction:!0}),r=t[0],i=t[1],u=g.useCallback(function(n){if(e()){var a,d;try{if(typeof n!="string"&&typeof n!="number"){var l=new Error("Cannot copy typeof "+typeof n+" to clipboard, must be a string");process.env.NODE_ENV==="development"&&console.error(l),i({value:n,error:l,noUserInteraction:!0});return}else if(n===""){var l=new Error("Cannot copy empty string to clipboard.");process.env.NODE_ENV==="development"&&console.error(l),i({value:n,error:l,noUserInteraction:!0});return}d=n.toString(),a=Et(d),i({value:d,error:void 0,noUserInteraction:a})}catch(f){i({value:d,error:f,noUserInteraction:a})}}},[]);return[r,u]};function xt(){const[e,t]=g.useState(r());function r(){return document.documentElement.style.getPropertyValue("color-scheme")||localStorage.getItem("theme")||"light"}return g.useEffect(()=>{const i=document.documentElement,u=new MutationObserver(()=>{const n=r();t(n)});return u.observe(i,{attributes:!0,attributeFilter:["style"]}),()=>u.disconnect()},[]),e}function te(){const{resolvedTheme:e,setTheme:t}=Q.z();return{colorMode:e,setColorMode:t,toggleColorMode:()=>{t(e==="light"?"dark":"light")}}}function At(e,t){const{colorMode:r}=te();return r==="light"?e:t}exports.DateRangePickerField=oe.DateRangePickerField;exports.MoneyInputField=ne.MoneyInputField;exports.MultilineTextInputField=ae.MultilineTextInputField;exports.NumberInputField=ie.NumberInputField;exports.SearchInputField=ue.SearchInputField;exports.TextInputField=ce.TextInputField;exports.system=le.system;exports.RichTextInput=W.RichTextInput;exports.Avatar=se.Avatar;exports.Box=de.Box;exports.Button=pe.Button;exports.Code=ge.Code;exports.ComboBox=me.ComboBox;exports.Dialog=fe.Dialog;exports.FieldErrorTypes=X.FieldErrorTypes;exports.FieldErrors=X.FieldErrors;exports.Group=be.Group;exports.Heading=ye.Heading;exports.NimbusI18nProvider=Te.NimbusI18nProvider;exports.IconButton=Ce.IconButton;exports.IconToggleButton=he.IconToggleButton;exports.Image=ve.Image;exports.Kbd=Ie.Kbd;exports.Link=De.Link;exports.List=E.List;exports._ListIndicator=E.ListIndicator;exports._ListItem=E.ListItem;exports._ListRoot=E.ListRoot;exports.DraggableList=L.DraggableList;exports._DraggableListField=L.DraggableListField;exports._DraggableListItem=L.DraggableListItem;exports._DraggableListRoot=L.DraggableListRoot;exports.SimpleGrid=qe.SimpleGrid;exports.Text=we.Text;exports.Tooltip=Se.Tooltip;exports.MakeElementFocusable=Fe.MakeElementFocusable;exports.NimbusProvider=Q.NimbusProvider;exports.Checkbox=_e.Checkbox;exports.CollapsibleMotion=x.CollapsibleMotion;exports._CollapsibleMotionContent=x.CollapsibleMotionContent;exports._CollapsibleMotionRoot=x.CollapsibleMotionRoot;exports._CollapsibleMotionTrigger=x.CollapsibleMotionTrigger;exports.Stack=ke.Stack;exports.VisuallyHidden=Re.VisuallyHidden;exports.TextInput=Ee.TextInput;exports.NumberInput=Le.NumberInput;exports.Grid=xe.Grid;exports.Select=Ae.Select;exports.Separator=Me.Separator;exports.Spacer=Pe.Spacer;exports.Accordion=Be.Accordion;exports._AccordionContent=k.AccordionContent;exports._AccordionHeader=k.AccordionHeader;exports._AccordionHeaderRightContent=k.AccordionHeaderRightContent;exports._AccordionItem=k.AccordionItem;exports._AccordionRoot=k.AccordionRoot;exports.Alert=F.Alert;exports._AlertActions=F.AlertActions;exports._AlertDescription=F.AlertDescription;exports._AlertDismissButton=F.AlertDismissButton;exports._AlertRoot=F.AlertRoot;exports._AlertTitle=F.AlertTitle;exports.Badge=Ne.Badge;exports.Card=A.Card;exports._CardContent=A.CardContent;exports._CardHeader=A.CardHeader;exports._CardRoot=A.CardRoot;exports.FormField=w.FormField;exports._FormFieldDescription=w.FormFieldDescription;exports._FormFieldError=w.FormFieldError;exports._FormFieldInfoBox=w.FormFieldInfoBox;exports._FormFieldInput=w.FormFieldInput;exports._FormFieldLabel=w.FormFieldLabel;exports._FormFieldRoot=w.FormFieldRoot;exports.Icon=Ke.Icon;exports.InlineSvg=He.InlineSvg;exports.LoadingSpinner=Oe.LoadingSpinner;exports.PasswordInput=Ge.PasswordInput;exports.SearchInput=Ue.SearchInput;exports.ScopedSearchInput=je.ScopedSearchInput;exports.SplitButton=Ve.SplitButton;exports.TimeInput=ze.TimeInput;exports.MultilineTextInput=$e.MultilineTextInput;exports.MoneyInput=We.MoneyInput;exports.RadioInput=Xe.RadioInput;exports.Switch=Qe.Switch;exports.TagGroup=Ye.TagGroup;exports.ToggleButton=Ze.ToggleButton;exports.ToggleButtonGroup=H.ToggleButtonGroup;exports._ToggleButtonGroupButton=H.ToggleButtonGroupButton;exports._ToggleButtonGroupRoot=H.ToggleButtonGroupRoot;exports.DateInput=Je.DateInput;exports.Calendar=et.Calendar;exports.DatePicker=tt.DatePicker;exports.ProgressBar=rt.ProgressBar;exports.RangeCalendar=ot.RangeCalendar;exports.Menu=D.Menu;exports._MenuContent=D.MenuContent;exports._MenuItem=D.MenuItem;exports._MenuRoot=D.MenuRoot;exports._MenuSection=D.MenuSection;exports._MenuSubmenu=D.MenuSubmenu;exports._MenuSubmenuTrigger=D.MenuSubmenuTrigger;exports._MenuTrigger=D.MenuTrigger;exports.DateRangePicker=nt.DateRangePicker;exports.Toolbar=at.Toolbar;exports.DataTable=b.DataTable;exports.UPDATE_ACTIONS=b.UPDATE_ACTIONS;exports._DataTableBody=b.DataTableBody;exports._DataTableCell=b.DataTableCell;exports._DataTableColumn=b.DataTableColumn;exports._DataTableExpandButton=b.DataTableExpandButton;exports._DataTableFooter=b.DataTableFooter;exports._DataTableHeader=b.DataTableHeader;exports._DataTableManager=b.DataTableManager;exports._DataTableNestedIcon=b.DataTableNestedIcon;exports._DataTableRoot=b.DataTableRoot;exports._DataTableRow=b.DataTableRow;exports._DataTableSelectionCell=b.DataTableSelectionCell;exports._DataTableTable=b.DataTableTable;exports.Pagination=it.Pagination;exports.Drawer=I.Drawer;exports._DrawerBody=I.DrawerBody;exports._DrawerCloseTrigger=I.DrawerCloseTrigger;exports._DrawerContent=I.DrawerContent;exports._DrawerFooter=I.DrawerFooter;exports._DrawerHeader=I.DrawerHeader;exports._DrawerRoot=I.DrawerRoot;exports._DrawerTitle=I.DrawerTitle;exports._DrawerTrigger=I.DrawerTrigger;exports.Tabs=_.Tabs;exports._TabsList=_.TabsList;exports._TabsPanel=_.TabsPanel;exports._TabsPanels=_.TabsPanels;exports._TabsRoot=_.TabsRoot;exports._TabsTab=_.TabsTab;exports.LocalizedField=ut.LocalizedField;exports.useColorMode=te;exports.useColorModeValue=At;exports.useColorScheme=xt;exports.useCopyToClipboard=Lt;exports.useHotkeys=wt;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|