@alfadocs/ui-kit-debug 1.80.0 → 1.82.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{address-fields-GnoSkvh6.js → address-fields-CfnXK8RT.js} +4 -4
- package/dist/_chunks/{address-fields-GnoSkvh6.js.map → address-fields-CfnXK8RT.js.map} +1 -1
- package/dist/_chunks/{ai-prompt-input-M6u29f87.js → ai-prompt-input-DH_rnV-F.js} +33 -26
- package/dist/_chunks/{ai-prompt-input-M6u29f87.js.map → ai-prompt-input-DH_rnV-F.js.map} +1 -1
- package/dist/_chunks/{anamnesis-summary-rows-lONg-zja.js → anamnesis-summary-rows-6gMuu0ZK.js} +2 -2
- package/dist/_chunks/{anamnesis-summary-rows-lONg-zja.js.map → anamnesis-summary-rows-6gMuu0ZK.js.map} +1 -1
- package/dist/_chunks/{autocomplete-DosDnGie.js → autocomplete-CnB1mHGc.js} +65 -64
- package/dist/_chunks/{autocomplete-DosDnGie.js.map → autocomplete-CnB1mHGc.js.map} +1 -1
- package/dist/_chunks/{balance-badge-cell-Dzd-Z_5W.js → balance-badge-cell-BHXJS8Ga.js} +2 -2
- package/dist/_chunks/{balance-badge-cell-Dzd-Z_5W.js.map → balance-badge-cell-BHXJS8Ga.js.map} +1 -1
- package/dist/_chunks/{benefit-card-BWBClvdF.js → benefit-card-BcPtRHgM.js} +37 -36
- package/dist/_chunks/{benefit-card-BWBClvdF.js.map → benefit-card-BcPtRHgM.js.map} +1 -1
- package/dist/_chunks/booking-dsgiuhKg.js +4304 -0
- package/dist/_chunks/booking-dsgiuhKg.js.map +1 -0
- package/dist/_chunks/{calendar-appointment-editor-dialog-DhTTWgXw.js → calendar-appointment-editor-dialog-BuumJbcv.js} +4 -4
- package/dist/_chunks/{calendar-appointment-editor-dialog-DhTTWgXw.js.map → calendar-appointment-editor-dialog-BuumJbcv.js.map} +1 -1
- package/dist/_chunks/{city-input-3J3bz9EO.js → city-input-CJVGswxp.js} +2 -2
- package/dist/_chunks/{city-input-3J3bz9EO.js.map → city-input-CJVGswxp.js.map} +1 -1
- package/dist/_chunks/{combobox-vF9O-QoG.js → combobox-CDPm_n0p.js} +93 -92
- package/dist/_chunks/{combobox-vF9O-QoG.js.map → combobox-CDPm_n0p.js.map} +1 -1
- package/dist/_chunks/{command-palette-D9TBzmOG.js → command-palette-B3dVqm9D.js} +68 -68
- package/dist/_chunks/{command-palette-D9TBzmOG.js.map → command-palette-B3dVqm9D.js.map} +1 -1
- package/dist/_chunks/{contact-profile-card-DKk94l-d.js → contact-profile-card-Da1vmJQI.js} +115 -102
- package/dist/_chunks/contact-profile-card-Da1vmJQI.js.map +1 -0
- package/dist/_chunks/{country-select-CSE2Zm_s.js → country-select-DQ8q7ypA.js} +2 -2
- package/dist/_chunks/{country-select-CSE2Zm_s.js.map → country-select-DQ8q7ypA.js.map} +1 -1
- package/dist/_chunks/{face-scheme-BIPJqw9f.js → face-scheme-BgJGFDTa.js} +2 -2
- package/dist/_chunks/{face-scheme-BIPJqw9f.js.map → face-scheme-BgJGFDTa.js.map} +1 -1
- package/dist/_chunks/{header-settings-BYpVmLip.js → header-settings-CifwJEKB.js} +2 -2
- package/dist/_chunks/{header-settings-BYpVmLip.js.map → header-settings-CifwJEKB.js.map} +1 -1
- package/dist/_chunks/{link-cell-renderer-B0riA_h_.js → link-cell-renderer-C0ynDik7.js} +3 -3
- package/dist/_chunks/{link-cell-renderer-B0riA_h_.js.map → link-cell-renderer-C0ynDik7.js.map} +1 -1
- package/dist/_chunks/{locale-picker-DzdGDSBI.js → locale-picker-QbT1p60X.js} +39 -38
- package/dist/_chunks/{locale-picker-DzdGDSBI.js.map → locale-picker-QbT1p60X.js.map} +1 -1
- package/dist/_chunks/{map-view-C6MIVaqn.js → map-view-Bvi06RVh.js} +2 -2
- package/dist/_chunks/{map-view-C6MIVaqn.js.map → map-view-Bvi06RVh.js.map} +1 -1
- package/dist/_chunks/{marketplace-app-shell-mS7Q2-81.js → marketplace-app-shell-vON3WhD0.js} +2 -2
- package/dist/_chunks/{marketplace-app-shell-mS7Q2-81.js.map → marketplace-app-shell-vON3WhD0.js.map} +1 -1
- package/dist/_chunks/{multi-select-BOad3za9.js → multi-select-i5MFRpXg.js} +194 -187
- package/dist/_chunks/multi-select-i5MFRpXg.js.map +1 -0
- package/dist/_chunks/{otp-input-BgEZi0py.js → otp-input-gV1446Dw.js} +70 -70
- package/dist/_chunks/otp-input-gV1446Dw.js.map +1 -0
- package/dist/_chunks/{patient-details-B-I9Xkh9.js → patient-details-D0P5eog5.js} +2 -2
- package/dist/_chunks/{patient-details-B-I9Xkh9.js.map → patient-details-D0P5eog5.js.map} +1 -1
- package/dist/_chunks/{patient-field-row-Bn0z6lAZ.js → patient-field-row-R73dZJY6.js} +5 -5
- package/dist/_chunks/{patient-field-row-Bn0z6lAZ.js.map → patient-field-row-R73dZJY6.js.map} +1 -1
- package/dist/_chunks/{patient-search-CxqNcth4.js → patient-search-Dy0sxcwv.js} +2 -2
- package/dist/_chunks/{patient-search-CxqNcth4.js.map → patient-search-Dy0sxcwv.js.map} +1 -1
- package/dist/_chunks/{patient-summary-card-bhDo0gVX.js → patient-summary-card-6U74-ivO.js} +2 -2
- package/dist/_chunks/{patient-summary-card-bhDo0gVX.js.map → patient-summary-card-6U74-ivO.js.map} +1 -1
- package/dist/_chunks/{payment-automation-upsell-AQpHOS1X.js → payment-automation-upsell-D1YdO1xY.js} +2 -2
- package/dist/_chunks/{payment-automation-upsell-AQpHOS1X.js.map → payment-automation-upsell-D1YdO1xY.js.map} +1 -1
- package/dist/_chunks/{phone-input-C3NrD-nl.js → phone-input-DJ4BN8tG.js} +70 -63
- package/dist/_chunks/{phone-input-C3NrD-nl.js.map → phone-input-DJ4BN8tG.js.map} +1 -1
- package/dist/_chunks/{practice-results-CtOanuzZ.js → practice-results-B61krlwu.js} +2 -2
- package/dist/_chunks/{practice-results-CtOanuzZ.js.map → practice-results-B61krlwu.js.map} +1 -1
- package/dist/_chunks/{province-select-CDjs5obD.js → province-select-CPdTwEob.js} +2 -2
- package/dist/_chunks/{province-select-CDjs5obD.js.map → province-select-CPdTwEob.js.map} +1 -1
- package/dist/_chunks/{registration-form-CNBfUduG.js → registration-form-DmP3YUfp.js} +3 -3
- package/dist/_chunks/{registration-form-CNBfUduG.js.map → registration-form-DmP3YUfp.js.map} +1 -1
- package/dist/_chunks/{send-registration-link-form-vTn1HxjA.js → send-registration-link-form-CZYOO7NO.js} +2 -2
- package/dist/_chunks/{send-registration-link-form-vTn1HxjA.js.map → send-registration-link-form-CZYOO7NO.js.map} +1 -1
- package/dist/_chunks/{task-editor-Cpw-NmND.js → task-editor-BOETWbjU.js} +2 -2
- package/dist/_chunks/{task-editor-Cpw-NmND.js.map → task-editor-BOETWbjU.js.map} +1 -1
- package/dist/_chunks/{use-appointment-details-read-lFUL4kkd.js → use-appointment-details-read-CWN-nJCZ.js} +2 -2
- package/dist/_chunks/{use-appointment-details-read-lFUL4kkd.js.map → use-appointment-details-read-CWN-nJCZ.js.map} +1 -1
- package/dist/agent-catalog.json +4 -4
- package/dist/agent-i18n/en.json +1 -1
- package/dist/components/address-fields/index.js +1 -1
- package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/appointment-details-panel/index.js +1 -1
- package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/benefit-card/benefit-card.d.ts +7 -1
- package/dist/components/benefit-card/benefit-card.d.ts.map +1 -1
- package/dist/components/benefit-card/index.js +1 -1
- package/dist/components/booking/booking-types.d.ts +35 -2
- package/dist/components/booking/booking-types.d.ts.map +1 -1
- package/dist/components/booking/booking.d.ts.map +1 -1
- package/dist/components/booking/code-step.d.ts +4 -2
- package/dist/components/booking/code-step.d.ts.map +1 -1
- package/dist/components/booking/details-form.d.ts +2 -0
- package/dist/components/booking/details-form.d.ts.map +1 -1
- package/dist/components/booking/handover.d.ts +12 -0
- package/dist/components/booking/handover.d.ts.map +1 -0
- package/dist/components/booking/index.js +1 -1
- package/dist/components/booking/reserved.d.ts +24 -0
- package/dist/components/booking/reserved.d.ts.map +1 -0
- package/dist/components/booking/use-booking-payment.d.ts +3 -1
- package/dist/components/booking/use-booking-payment.d.ts.map +1 -1
- package/dist/components/city-input/index.js +1 -1
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/command-palette/index.js +1 -1
- package/dist/components/contact-profile-card/contact-profile-card.d.ts +4 -1
- package/dist/components/contact-profile-card/contact-profile-card.d.ts.map +1 -1
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/country-select/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/locale-picker/index.js +1 -1
- package/dist/components/locale-picker/locale-picker.d.ts.map +1 -1
- package/dist/components/map-view/index.js +1 -1
- package/dist/components/multi-select/index.js +1 -1
- package/dist/components/multi-select/multi-select.d.ts.map +1 -1
- package/dist/components/otp-input/index.js +1 -1
- package/dist/components/otp-input/otp-input.d.ts +1 -1
- package/dist/components/otp-input/otp-input.d.ts.map +1 -1
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-search/index.js +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/phone-input/index.js +1 -1
- package/dist/components/phone-input/phone-input.d.ts.map +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/province-select/index.js +1 -1
- package/dist/components/task-editor/index.js +1 -1
- package/dist/i18n/locales/ar.d.ts +8 -0
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +8 -0
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +8 -0
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +8 -0
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts +8 -0
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +8 -0
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +8 -0
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +8 -0
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +8 -0
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +8 -0
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +8 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +8 -0
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts +8 -0
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +8 -0
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +8 -0
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +8 -0
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts +8 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +8 -0
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts +8 -0
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +8 -0
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts +8 -0
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +8 -0
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts +8 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +8 -0
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts +8 -0
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +8 -0
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts +8 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +8 -0
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sq.d.ts +8 -0
- package/dist/i18n/locales/sq.d.ts.map +1 -1
- package/dist/i18n/locales/sq.js +8 -0
- package/dist/i18n/locales/sq.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts +8 -0
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +8 -0
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts +8 -0
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +8 -0
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +8 -0
- package/dist/i18n/locales/zh.d.ts.map +1 -1
- package/dist/i18n/locales/zh.js +8 -0
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.js +30 -30
- package/dist/locales/ar.json +8 -0
- package/dist/locales/de.json +8 -0
- package/dist/locales/el.json +8 -0
- package/dist/locales/en.json +8 -0
- package/dist/locales/es.json +8 -0
- package/dist/locales/fr.json +8 -0
- package/dist/locales/hi.json +8 -0
- package/dist/locales/it.json +8 -0
- package/dist/locales/ja.json +8 -0
- package/dist/locales/nl.json +8 -0
- package/dist/locales/pl.json +8 -0
- package/dist/locales/pt.json +8 -0
- package/dist/locales/ro.json +8 -0
- package/dist/locales/ru.json +8 -0
- package/dist/locales/sq.json +8 -0
- package/dist/locales/sv.json +8 -0
- package/dist/locales/tr.json +8 -0
- package/dist/locales/zh.json +8 -0
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/payment-automation-upsell/index.js +1 -1
- package/dist/patterns/registration-form/index.js +1 -1
- package/dist/patterns/send-registration-link-form/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/booking-By4I_1A-.js +0 -4068
- package/dist/_chunks/booking-By4I_1A-.js.map +0 -1
- package/dist/_chunks/contact-profile-card-DKk94l-d.js.map +0 -1
- package/dist/_chunks/multi-select-BOad3za9.js.map +0 -1
- package/dist/_chunks/otp-input-BgEZi0py.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as p } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as G, useRef as d, useMemo as K, useCallback as m, useEffect as J } from "react";
|
|
3
3
|
import { useTranslation as O } from "react-i18next";
|
|
4
|
-
import { A as Q } from "./autocomplete-
|
|
4
|
+
import { A as Q } from "./autocomplete-CnB1mHGc.js";
|
|
5
5
|
import { T as X } from "./text-input-CaG9ApoE.js";
|
|
6
6
|
import { c as Y } from "./compose-refs-C0k0tdqF.js";
|
|
7
7
|
import { w as Z } from "./use-state-backed-input-DhRQo6gM.js";
|
|
@@ -182,4 +182,4 @@ export {
|
|
|
182
182
|
te as C,
|
|
183
183
|
ee as c
|
|
184
184
|
};
|
|
185
|
-
//# sourceMappingURL=city-input-
|
|
185
|
+
//# sourceMappingURL=city-input-CJVGswxp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"city-input-3J3bz9EO.js","sources":["../../src/components/city-input/city-input.agent.ts","../../src/components/city-input/city-input.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\n\nexport interface CityInputHandle {\n getValue: () => string;\n setValue: (value: string) => void;\n clear: () => void;\n}\n\nexport const cityInputAgent: AgentAdapter<CityInputHandle> = {\n id: 'city-input',\n capabilities: ['set_value'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.cityInput.state.value',\n description: 'Current city / town value.',\n read: (handle) => handle.getValue(),\n },\n isEmpty: {\n type: 'boolean',\n descriptionKey: 'ui.agent.cityInput.state.isEmpty',\n description: 'Whether the field has no value.',\n read: (handle) => handle.getValue() === '',\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string }',\n argsSchema: {\n type: 'object',\n properties: { value: { type: 'string' } },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.cityInput.actions.setValue',\n description: 'Replace the city value.',\n examples: [\n { args: { value: 'Milano' }, note: 'Set the city to Milano.' },\n ],\n invoke: (handle, args: { value: string }) => {\n handle.setValue(args.value);\n },\n },\n clear: {\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.cityInput.actions.clear',\n description: 'Empty the field. Loses any typed value.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'city-input' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n type ChangeEvent,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Autocomplete } from '../autocomplete/autocomplete';\nimport { TextInput } from '../text-input';\nimport type { OptionShape } from '../_shared/option';\nimport { composeRefs } from '../_shared/compose-refs';\nimport { writeInputValue } from '../_shared/use-state-backed-input';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { useAgentRegistration } from '../../agent';\nimport { cityInputAgent, type CityInputHandle } from './city-input.agent';\n\n/* ------------------------------------------------------------------ */\n/* Public API */\n/* */\n/* A city / town field with an OPTIONAL geocoder-agnostic suggestion */\n/* seam. When `loadCities` is supplied the field is an async */\n/* Autocomplete; when it isn't, it degrades to a plain labelled text */\n/* input. The kit imports NO geocoder — the consumer owns the data */\n/* source (Google Places, Mapbox, a server endpoint, …). */\n/* ------------------------------------------------------------------ */\n\nexport interface CityLoaderContext {\n signal: AbortSignal;\n locale: string;\n /** Selected country (lowercase alpha-2), passed through to bias results. */\n country?: string;\n /** Selected province/region code, passed through to bias results. */\n province?: string;\n}\n\nexport interface CityInputProps {\n /** City / town name (free text). */\n value?: string;\n defaultValue?: string;\n onValueChange?: (city: string) => void;\n /**\n * Optional async suggestion source. Omit → the field is a plain text\n * input with no suggestions. The kit never imports a geocoder; wire your\n * own here.\n */\n loadCities?: (\n query: string,\n ctx: CityLoaderContext,\n ) => Promise<OptionShape[]>;\n /** Fires when a suggestion is picked, with the full option. */\n onCitySelect?: (option: OptionShape) => void;\n /** Passed through to `loadCities` to bias suggestions. */\n country?: string;\n /** Passed through to `loadCities` to bias suggestions. */\n province?: string;\n /** Frequently-picked cities surfaced before the user types. */\n recents?: OptionShape[];\n debounceMs?: number;\n /** Snap the value back to the last picked suggestion on blur. */\n snapOnBlur?: boolean;\n placeholder?: string;\n /** Clear button — text-fallback mode only. */\n clearable?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n name?: string;\n id?: string;\n size?: 'sm' | 'md' | 'lg';\n tone?: 'default' | 'error';\n /**\n * Accessible name. Not needed inside a `<FormField>`: the field's label\n * names the input in both modes. Pass it when there is no FormField.\n */\n 'aria-label'?: string;\n /** Invalid-state fallback for use outside a `<FormField>` (inline editors). */\n 'aria-invalid'?: boolean;\n /** Error-message id fallback for use outside a `<FormField>`. */\n 'aria-describedby'?: string;\n className?: string;\n}\n\nexport const CityInput = forwardRef<HTMLInputElement, CityInputProps>(\n function CityInput(\n {\n value: valueProp,\n defaultValue,\n onValueChange,\n loadCities,\n onCitySelect,\n country,\n province,\n recents,\n debounceMs,\n snapOnBlur,\n placeholder,\n clearable,\n disabled,\n readOnly,\n required,\n name,\n id,\n size = 'md',\n tone = 'default',\n 'aria-label': ariaLabel,\n 'aria-invalid': ariaInvalid,\n 'aria-describedby': ariaDescribedBy,\n className,\n },\n ref,\n ) {\n const { t } = useTranslation('ui');\n\n const [value, setValue] = useControllableState<string>({\n value: valueProp,\n defaultValue,\n onChange: onValueChange,\n });\n\n // No loader and no host `value`: TextInput stays uncontrolled, keeping\n // the city out of the `value` attribute. Other changes go through the\n // input as typing would, so TextInput's clear button stays in step.\n const plainUncontrolled = !loadCities && valueProp === undefined;\n const inputRef = useRef<HTMLInputElement | null>(null);\n const composedRef = useMemo(() => composeRefs(ref, inputRef), [ref]);\n const writeThrough = useCallback(\n (next: string) => writeInputValue(inputRef.current, next),\n [],\n );\n const commit = useCallback(\n (next: string) => {\n if (plainUncontrolled && writeThrough(next)) return;\n setValue(next);\n },\n [plainUncontrolled, setValue, writeThrough],\n );\n\n // Back from suggestion mode, the plain input mounts with the host's\n // defaultValue: show the current city. Typing keeps them in step after.\n // Not on the first mount, where the input already shows defaultValue\n // and a host's ref may have written to it since.\n const wasPlainRef = useRef(plainUncontrolled);\n useIsomorphicLayoutEffect(() => {\n if (plainUncontrolled && !wasPlainRef.current) writeThrough(value ?? '');\n wasPlainRef.current = plainUncontrolled;\n }, [plainUncontrolled]);\n\n const valueRef = useRef(value);\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n const agentHandle = useMemo<CityInputHandle>(\n () => ({\n getValue: () => valueRef.current ?? '',\n setValue: (next) => commit(next),\n clear: () => commit(''),\n }),\n [commit],\n );\n useAgentRegistration(cityInputAgent, agentHandle, id);\n\n const loadOptions = useCallback(\n (query: string, opts: { signal: AbortSignal; locale: string }) =>\n loadCities\n ? loadCities(query, { ...opts, country, province })\n : Promise.resolve<OptionShape[]>([]),\n [loadCities, country, province],\n );\n\n const resolvedPlaceholder =\n placeholder ?? t('inputs.cityInput.placeholder', 'City');\n\n return (\n <div\n data-component=\"city-input\"\n data-component-id={id}\n className={['ds:w-full', className].filter(Boolean).join(' ')}\n >\n {loadCities ? (\n <Autocomplete\n ref={ref}\n loadOptions={loadOptions}\n value={value ?? ''}\n onChange={setValue}\n onSelect={onCitySelect}\n recents={recents}\n debounceMs={debounceMs}\n snapOnBlur={snapOnBlur}\n autoComplete=\"address-level2\"\n placeholder={resolvedPlaceholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n name={name}\n id={id}\n size={size}\n tone={tone}\n aria-label={ariaLabel}\n aria-invalid={ariaInvalid}\n aria-describedby={ariaDescribedBy}\n />\n ) : (\n <TextInput\n ref={composedRef}\n {...(plainUncontrolled ? { defaultValue } : { value: value ?? '' })}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setValue(event.target.value)\n }\n onClear={() => setValue('')}\n autoComplete=\"address-level2\"\n placeholder={resolvedPlaceholder}\n clearable={clearable}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n name={name}\n id={id}\n size={size}\n tone={tone}\n aria-label={ariaLabel}\n aria-invalid={ariaInvalid}\n aria-describedby={ariaDescribedBy}\n />\n )}\n </div>\n );\n },\n);\n\nCityInput.displayName = 'CityInput';\n"],"names":["cityInputAgent","handle","args","CityInput","forwardRef","valueProp","defaultValue","onValueChange","loadCities","onCitySelect","country","province","recents","debounceMs","snapOnBlur","placeholder","clearable","disabled","readOnly","required","name","id","size","tone","ariaLabel","ariaInvalid","ariaDescribedBy","className","ref","t","useTranslation","value","setValue","useControllableState","plainUncontrolled","inputRef","useRef","composedRef","useMemo","composeRefs","writeThrough","useCallback","next","writeInputValue","commit","wasPlainRef","useIsomorphicLayoutEffect","valueRef","useEffect","agentHandle","useAgentRegistration","loadOptions","query","opts","resolvedPlaceholder","jsx","Autocomplete","TextInput","event"],"mappings":";;;;;;;;;;AAQO,MAAMA,KAAgD;AAAA,EAC3D,IAAI;AAAA,EACJ,cAAc,CAAC,WAAW;AAAA,EAC1B,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,MAAM,CAACC,MAAWA,EAAO,SAAA;AAAA,IAAS;AAAA,IAEpC,SAAS;AAAA,MACP,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,MAAM,CAACA,MAAWA,EAAO,eAAe;AAAA,IAAA;AAAA,EAC1C;AAAA,EAEF,SAAS;AAAA,IACP,WAAW;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,YAAY;AAAA,QACV,MAAM;AAAA,QACN,YAAY,EAAE,OAAO,EAAE,MAAM,WAAS;AAAA,QACtC,UAAU,CAAC,OAAO;AAAA,MAAA;AAAA,MAEpB,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,UAAU;AAAA,QACR,EAAE,MAAM,EAAE,OAAO,SAAA,GAAY,MAAM,0BAAA;AAAA,MAA0B;AAAA,MAE/D,QAAQ,CAACA,GAAQC,MAA4B;AAC3C,QAAAD,EAAO,SAASC,EAAK,KAAK;AAAA,MAC5B;AAAA,IAAA;AAAA,IAEF,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,QAAQ,CAACD,MAAW;AAClB,QAAAA,EAAO,MAAA;AAAA,MACT;AAAA,IAAA;AAAA,EACF;AAAA,EAEF,UAAU;AAAA,IACR,MAAM,EAAE,MAAM,kBAAkB,OAAO,aAAA;AAAA,IACvC,YAAY;AAAA,MACV,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,GCuBaE,KAAYC;AAAA,EACvB,SACE;AAAA,IACE,OAAOC;AAAA,IACP,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,IAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,MAAAC,IAAO;AAAA,IACP,cAAcC;AAAA,IACd,gBAAgBC;AAAA,IAChB,oBAAoBC;AAAA,IACpB,WAAAC;AAAA,EAAA,GAEFC,GACA;AACA,UAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,IAAI,GAE3B,CAACC,GAAOC,CAAQ,IAAIC,EAA6B;AAAA,MACrD,OAAO5B;AAAA,MACP,cAAAC;AAAA,MACA,UAAUC;AAAA,IAAA,CACX,GAKK2B,IAAoB,CAAC1B,KAAcH,MAAc,QACjD8B,IAAWC,EAAgC,IAAI,GAC/CC,IAAcC,EAAQ,MAAMC,EAAYX,GAAKO,CAAQ,GAAG,CAACP,CAAG,CAAC,GAC7DY,IAAeC;AAAA,MACnB,CAACC,MAAiBC,EAAgBR,EAAS,SAASO,CAAI;AAAA,MACxD,CAAA;AAAA,IAAC,GAEGE,IAASH;AAAA,MACb,CAACC,MAAiB;AAChB,QAAIR,KAAqBM,EAAaE,CAAI,KAC1CV,EAASU,CAAI;AAAA,MACf;AAAA,MACA,CAACR,GAAmBF,GAAUQ,CAAY;AAAA,IAAA,GAOtCK,IAAcT,EAAOF,CAAiB;AAC5C,IAAAY,EAA0B,MAAM;AAC9B,MAAIZ,KAAqB,CAACW,EAAY,WAASL,EAAaT,KAAS,EAAE,GACvEc,EAAY,UAAUX;AAAA,IACxB,GAAG,CAACA,CAAiB,CAAC;AAEtB,UAAMa,IAAWX,EAAOL,CAAK;AAC7B,IAAAiB,EAAU,MAAM;AACd,MAAAD,EAAS,UAAUhB;AAAA,IACrB,GAAG,CAACA,CAAK,CAAC;AAEV,UAAMkB,IAAcX;AAAA,MAClB,OAAO;AAAA,QACL,UAAU,MAAMS,EAAS,WAAW;AAAA,QACpC,UAAU,CAACL,MAASE,EAAOF,CAAI;AAAA,QAC/B,OAAO,MAAME,EAAO,EAAE;AAAA,MAAA;AAAA,MAExB,CAACA,CAAM;AAAA,IAAA;AAET,IAAAM,EAAqBlD,IAAgBiD,GAAa5B,CAAE;AAEpD,UAAM8B,IAAcV;AAAA,MAClB,CAACW,GAAeC,MACd7C,IACIA,EAAW4C,GAAO,EAAE,GAAGC,GAAM,SAAA3C,GAAS,UAAAC,GAAU,IAChD,QAAQ,QAAuB,CAAA,CAAE;AAAA,MACvC,CAACH,GAAYE,GAASC,CAAQ;AAAA,IAAA,GAG1B2C,IACJvC,KAAec,EAAE,gCAAgC,MAAM;AAEzD,WACE,gBAAA0B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,kBAAe;AAAA,QACf,qBAAmBlC;AAAA,QACnB,WAAW,CAAC,aAAaM,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,QAE3D,UAAAnB,IACC,gBAAA+C;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,KAAA5B;AAAA,YACA,aAAAuB;AAAA,YACA,OAAOpB,KAAS;AAAA,YAChB,UAAUC;AAAA,YACV,UAAUvB;AAAA,YACV,SAAAG;AAAA,YACA,YAAAC;AAAA,YACA,YAAAC;AAAA,YACA,cAAa;AAAA,YACb,aAAawC;AAAA,YACb,UAAArC;AAAA,YACA,UAAAC;AAAA,YACA,UAAAC;AAAA,YACA,MAAAC;AAAA,YACA,IAAAC;AAAA,YACA,MAAAC;AAAA,YACA,MAAAC;AAAA,YACA,cAAYC;AAAA,YACZ,gBAAcC;AAAA,YACd,oBAAkBC;AAAA,UAAA;AAAA,QAAA,IAGpB,gBAAA6B;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,KAAKpB;AAAA,YACJ,GAAIH,IAAoB,EAAE,cAAA5B,EAAA,IAAiB,EAAE,OAAOyB,KAAS,GAAA;AAAA,YAC9D,UAAU,CAAC2B,MACT1B,EAAS0B,EAAM,OAAO,KAAK;AAAA,YAE7B,SAAS,MAAM1B,EAAS,EAAE;AAAA,YAC1B,cAAa;AAAA,YACb,aAAasB;AAAA,YACb,WAAAtC;AAAA,YACA,UAAAC;AAAA,YACA,UAAAC;AAAA,YACA,UAAAC;AAAA,YACA,MAAAC;AAAA,YACA,IAAAC;AAAA,YACA,MAAAC;AAAA,YACA,MAAAC;AAAA,YACA,cAAYC;AAAA,YACZ,gBAAcC;AAAA,YACd,oBAAkBC;AAAA,UAAA;AAAA,QAAA;AAAA,MACpB;AAAA,IAAA;AAAA,EAIR;AACF;AAEAvB,GAAU,cAAc;"}
|
|
1
|
+
{"version":3,"file":"city-input-CJVGswxp.js","sources":["../../src/components/city-input/city-input.agent.ts","../../src/components/city-input/city-input.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\n\nexport interface CityInputHandle {\n getValue: () => string;\n setValue: (value: string) => void;\n clear: () => void;\n}\n\nexport const cityInputAgent: AgentAdapter<CityInputHandle> = {\n id: 'city-input',\n capabilities: ['set_value'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.cityInput.state.value',\n description: 'Current city / town value.',\n read: (handle) => handle.getValue(),\n },\n isEmpty: {\n type: 'boolean',\n descriptionKey: 'ui.agent.cityInput.state.isEmpty',\n description: 'Whether the field has no value.',\n read: (handle) => handle.getValue() === '',\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string }',\n argsSchema: {\n type: 'object',\n properties: { value: { type: 'string' } },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.cityInput.actions.setValue',\n description: 'Replace the city value.',\n examples: [\n { args: { value: 'Milano' }, note: 'Set the city to Milano.' },\n ],\n invoke: (handle, args: { value: string }) => {\n handle.setValue(args.value);\n },\n },\n clear: {\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.cityInput.actions.clear',\n description: 'Empty the field. Loses any typed value.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'city-input' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n type ChangeEvent,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Autocomplete } from '../autocomplete/autocomplete';\nimport { TextInput } from '../text-input';\nimport type { OptionShape } from '../_shared/option';\nimport { composeRefs } from '../_shared/compose-refs';\nimport { writeInputValue } from '../_shared/use-state-backed-input';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { useAgentRegistration } from '../../agent';\nimport { cityInputAgent, type CityInputHandle } from './city-input.agent';\n\n/* ------------------------------------------------------------------ */\n/* Public API */\n/* */\n/* A city / town field with an OPTIONAL geocoder-agnostic suggestion */\n/* seam. When `loadCities` is supplied the field is an async */\n/* Autocomplete; when it isn't, it degrades to a plain labelled text */\n/* input. The kit imports NO geocoder — the consumer owns the data */\n/* source (Google Places, Mapbox, a server endpoint, …). */\n/* ------------------------------------------------------------------ */\n\nexport interface CityLoaderContext {\n signal: AbortSignal;\n locale: string;\n /** Selected country (lowercase alpha-2), passed through to bias results. */\n country?: string;\n /** Selected province/region code, passed through to bias results. */\n province?: string;\n}\n\nexport interface CityInputProps {\n /** City / town name (free text). */\n value?: string;\n defaultValue?: string;\n onValueChange?: (city: string) => void;\n /**\n * Optional async suggestion source. Omit → the field is a plain text\n * input with no suggestions. The kit never imports a geocoder; wire your\n * own here.\n */\n loadCities?: (\n query: string,\n ctx: CityLoaderContext,\n ) => Promise<OptionShape[]>;\n /** Fires when a suggestion is picked, with the full option. */\n onCitySelect?: (option: OptionShape) => void;\n /** Passed through to `loadCities` to bias suggestions. */\n country?: string;\n /** Passed through to `loadCities` to bias suggestions. */\n province?: string;\n /** Frequently-picked cities surfaced before the user types. */\n recents?: OptionShape[];\n debounceMs?: number;\n /** Snap the value back to the last picked suggestion on blur. */\n snapOnBlur?: boolean;\n placeholder?: string;\n /** Clear button — text-fallback mode only. */\n clearable?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n name?: string;\n id?: string;\n size?: 'sm' | 'md' | 'lg';\n tone?: 'default' | 'error';\n /**\n * Accessible name. Not needed inside a `<FormField>`: the field's label\n * names the input in both modes. Pass it when there is no FormField.\n */\n 'aria-label'?: string;\n /** Invalid-state fallback for use outside a `<FormField>` (inline editors). */\n 'aria-invalid'?: boolean;\n /** Error-message id fallback for use outside a `<FormField>`. */\n 'aria-describedby'?: string;\n className?: string;\n}\n\nexport const CityInput = forwardRef<HTMLInputElement, CityInputProps>(\n function CityInput(\n {\n value: valueProp,\n defaultValue,\n onValueChange,\n loadCities,\n onCitySelect,\n country,\n province,\n recents,\n debounceMs,\n snapOnBlur,\n placeholder,\n clearable,\n disabled,\n readOnly,\n required,\n name,\n id,\n size = 'md',\n tone = 'default',\n 'aria-label': ariaLabel,\n 'aria-invalid': ariaInvalid,\n 'aria-describedby': ariaDescribedBy,\n className,\n },\n ref,\n ) {\n const { t } = useTranslation('ui');\n\n const [value, setValue] = useControllableState<string>({\n value: valueProp,\n defaultValue,\n onChange: onValueChange,\n });\n\n // No loader and no host `value`: TextInput stays uncontrolled, keeping\n // the city out of the `value` attribute. Other changes go through the\n // input as typing would, so TextInput's clear button stays in step.\n const plainUncontrolled = !loadCities && valueProp === undefined;\n const inputRef = useRef<HTMLInputElement | null>(null);\n const composedRef = useMemo(() => composeRefs(ref, inputRef), [ref]);\n const writeThrough = useCallback(\n (next: string) => writeInputValue(inputRef.current, next),\n [],\n );\n const commit = useCallback(\n (next: string) => {\n if (plainUncontrolled && writeThrough(next)) return;\n setValue(next);\n },\n [plainUncontrolled, setValue, writeThrough],\n );\n\n // Back from suggestion mode, the plain input mounts with the host's\n // defaultValue: show the current city. Typing keeps them in step after.\n // Not on the first mount, where the input already shows defaultValue\n // and a host's ref may have written to it since.\n const wasPlainRef = useRef(plainUncontrolled);\n useIsomorphicLayoutEffect(() => {\n if (plainUncontrolled && !wasPlainRef.current) writeThrough(value ?? '');\n wasPlainRef.current = plainUncontrolled;\n }, [plainUncontrolled]);\n\n const valueRef = useRef(value);\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n const agentHandle = useMemo<CityInputHandle>(\n () => ({\n getValue: () => valueRef.current ?? '',\n setValue: (next) => commit(next),\n clear: () => commit(''),\n }),\n [commit],\n );\n useAgentRegistration(cityInputAgent, agentHandle, id);\n\n const loadOptions = useCallback(\n (query: string, opts: { signal: AbortSignal; locale: string }) =>\n loadCities\n ? loadCities(query, { ...opts, country, province })\n : Promise.resolve<OptionShape[]>([]),\n [loadCities, country, province],\n );\n\n const resolvedPlaceholder =\n placeholder ?? t('inputs.cityInput.placeholder', 'City');\n\n return (\n <div\n data-component=\"city-input\"\n data-component-id={id}\n className={['ds:w-full', className].filter(Boolean).join(' ')}\n >\n {loadCities ? (\n <Autocomplete\n ref={ref}\n loadOptions={loadOptions}\n value={value ?? ''}\n onChange={setValue}\n onSelect={onCitySelect}\n recents={recents}\n debounceMs={debounceMs}\n snapOnBlur={snapOnBlur}\n autoComplete=\"address-level2\"\n placeholder={resolvedPlaceholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n name={name}\n id={id}\n size={size}\n tone={tone}\n aria-label={ariaLabel}\n aria-invalid={ariaInvalid}\n aria-describedby={ariaDescribedBy}\n />\n ) : (\n <TextInput\n ref={composedRef}\n {...(plainUncontrolled ? { defaultValue } : { value: value ?? '' })}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setValue(event.target.value)\n }\n onClear={() => setValue('')}\n autoComplete=\"address-level2\"\n placeholder={resolvedPlaceholder}\n clearable={clearable}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n name={name}\n id={id}\n size={size}\n tone={tone}\n aria-label={ariaLabel}\n aria-invalid={ariaInvalid}\n aria-describedby={ariaDescribedBy}\n />\n )}\n </div>\n );\n },\n);\n\nCityInput.displayName = 'CityInput';\n"],"names":["cityInputAgent","handle","args","CityInput","forwardRef","valueProp","defaultValue","onValueChange","loadCities","onCitySelect","country","province","recents","debounceMs","snapOnBlur","placeholder","clearable","disabled","readOnly","required","name","id","size","tone","ariaLabel","ariaInvalid","ariaDescribedBy","className","ref","t","useTranslation","value","setValue","useControllableState","plainUncontrolled","inputRef","useRef","composedRef","useMemo","composeRefs","writeThrough","useCallback","next","writeInputValue","commit","wasPlainRef","useIsomorphicLayoutEffect","valueRef","useEffect","agentHandle","useAgentRegistration","loadOptions","query","opts","resolvedPlaceholder","jsx","Autocomplete","TextInput","event"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { jsx as o, jsxs as
|
|
2
|
-
import { forwardRef as Qe, useContext as et, useMemo as
|
|
1
|
+
import { jsx as o, jsxs as x, Fragment as Ze } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as Qe, useContext as et, useMemo as Z, useState as Q, useRef as m, useEffect as E, useCallback as tt } from "react";
|
|
3
3
|
import * as P from "@radix-ui/react-popover";
|
|
4
|
-
import { R as st, _ as
|
|
4
|
+
import { R as st, _ as y, P as ot } from "./index-4xgbg-sn.js";
|
|
5
5
|
import { c as $ } from "./index-D2ZczOXr.js";
|
|
6
6
|
import { useTranslation as rt } from "react-i18next";
|
|
7
7
|
import { u as nt, F as it, b as at } from "./form-field-context-DtiROUJV.js";
|
|
@@ -11,8 +11,8 @@ import { g as dt } from "./group-options-BvKhQ3xb.js";
|
|
|
11
11
|
import { b as ct } from "./menu-row-BAr8bx1I.js";
|
|
12
12
|
import { O as ut, a as ft, o as mt, b as pt, c as bt } from "./option-row-Dc7BrbK8.js";
|
|
13
13
|
import { u as vt } from "./use-controllable-state-BiY4xTzM.js";
|
|
14
|
-
import { u as
|
|
15
|
-
import { I as ht, a as
|
|
14
|
+
import { u as ee } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
|
|
15
|
+
import { I as ht, a as te, d as se, c as gt } from "./input-surface-iBmxVBfr.js";
|
|
16
16
|
import { u as xt } from "./registry-DvAUVLHh.js";
|
|
17
17
|
import { X as yt } from "./x-B5YnXwCz.js";
|
|
18
18
|
import { C as St } from "./check-DrFSN__t.js";
|
|
@@ -149,9 +149,9 @@ const Nt = {
|
|
|
149
149
|
{
|
|
150
150
|
variants: {
|
|
151
151
|
size: {
|
|
152
|
-
sm: `${
|
|
153
|
-
md: `${
|
|
154
|
-
lg: `${
|
|
152
|
+
sm: `${te.sm} ${se.sm}`,
|
|
153
|
+
md: `${te.md} ${se.md}`,
|
|
154
|
+
lg: `${te.lg} ${se.lg}`
|
|
155
155
|
},
|
|
156
156
|
tone: ht
|
|
157
157
|
},
|
|
@@ -210,8 +210,8 @@ function At({
|
|
|
210
210
|
size: H,
|
|
211
211
|
onSelect: q
|
|
212
212
|
}) {
|
|
213
|
-
return ot((B) => B.filtered.count) > 0 ? null : /* @__PURE__ */
|
|
214
|
-
|
|
213
|
+
return ot((B) => B.filtered.count) > 0 ? null : /* @__PURE__ */ x(
|
|
214
|
+
y.Item,
|
|
215
215
|
{
|
|
216
216
|
value: `__combobox-create__${n}`,
|
|
217
217
|
keywords: [],
|
|
@@ -237,43 +237,43 @@ const he = Qe(
|
|
|
237
237
|
value: j,
|
|
238
238
|
defaultValue: H,
|
|
239
239
|
onValueChange: q,
|
|
240
|
-
placeholder:
|
|
240
|
+
placeholder: oe,
|
|
241
241
|
clearable: B = !1,
|
|
242
242
|
disabled: ge,
|
|
243
243
|
readOnly: xe,
|
|
244
244
|
required: ye,
|
|
245
245
|
name: Se,
|
|
246
|
-
id:
|
|
246
|
+
id: re,
|
|
247
247
|
size: _ = "md",
|
|
248
248
|
tone: Ne = "default",
|
|
249
249
|
filter: L,
|
|
250
250
|
allowCreate: Re = !1,
|
|
251
251
|
onCreate: U,
|
|
252
|
-
open:
|
|
253
|
-
onOpenChange:
|
|
252
|
+
open: ne,
|
|
253
|
+
onOpenChange: S,
|
|
254
254
|
onQueryChange: a,
|
|
255
255
|
emptyMessage: Ee,
|
|
256
256
|
className: we,
|
|
257
|
-
"aria-label":
|
|
257
|
+
"aria-label": K,
|
|
258
258
|
"aria-invalid": _e,
|
|
259
259
|
"aria-describedby": Ie,
|
|
260
260
|
autoComplete: A,
|
|
261
|
-
matchAutofill:
|
|
262
|
-
wrapOptionLabels:
|
|
261
|
+
matchAutofill: ie,
|
|
262
|
+
wrapOptionLabels: ae = !1
|
|
263
263
|
}, ke) {
|
|
264
|
-
const { t: I } = rt("ui"),
|
|
264
|
+
const { t: I } = rt("ui"), v = nt(), C = et(it) !== null, [ze, D] = vt({
|
|
265
265
|
value: j,
|
|
266
266
|
defaultValue: H ?? "",
|
|
267
267
|
onChange: q
|
|
268
|
-
}), b = ze ?? "", R =
|
|
268
|
+
}), b = ze ?? "", R = Z(
|
|
269
269
|
() => d.find((e) => e.value === b),
|
|
270
270
|
[d, b]
|
|
271
|
-
), f = (R == null ? void 0 : R.label) ?? "", [p, c] =
|
|
272
|
-
at(
|
|
273
|
-
const [Ce, De] =
|
|
274
|
-
|
|
275
|
-
if (!
|
|
276
|
-
|
|
271
|
+
), f = (R == null ? void 0 : R.label) ?? "", [p, c] = Q(f), [Ae, le] = Q(!1), F = ne !== void 0, i = F ? ne : Ae, k = m(!1), T = f !== "" && p === f, N = m(null), de = m(null), ce = m(null);
|
|
272
|
+
at(v, N);
|
|
273
|
+
const [Ce, De] = Q(0), ue = m(!1);
|
|
274
|
+
ee(() => {
|
|
275
|
+
if (!ue.current) {
|
|
276
|
+
ue.current = !0;
|
|
277
277
|
return;
|
|
278
278
|
}
|
|
279
279
|
T && De((e) => e + 1);
|
|
@@ -282,77 +282,77 @@ const he = Qe(
|
|
|
282
282
|
E(() => {
|
|
283
283
|
O.current = !1;
|
|
284
284
|
}, [p, i]);
|
|
285
|
-
const
|
|
286
|
-
|
|
285
|
+
const M = m(!1);
|
|
286
|
+
ee(() => {
|
|
287
287
|
if (!i || !T || !b) return;
|
|
288
|
-
const e =
|
|
288
|
+
const e = ce.current, t = e == null ? void 0 : e.querySelector(
|
|
289
289
|
`[data-option-id="${CSS.escape(b)}"]`
|
|
290
290
|
);
|
|
291
291
|
if (!e || !t) return;
|
|
292
|
-
const r = e.getBoundingClientRect(), l = t.getBoundingClientRect(), s = e.offsetHeight > 0 ? r.height / e.offsetHeight : 1,
|
|
293
|
-
e.scrollTop +=
|
|
292
|
+
const r = e.getBoundingClientRect(), l = t.getBoundingClientRect(), s = e.offsetHeight > 0 ? r.height / e.offsetHeight : 1, g = (l.top - r.top) / (s || 1), Je = l.height / (s || 1);
|
|
293
|
+
e.scrollTop += g - (e.clientHeight - Je) / 2, M.current = !0;
|
|
294
294
|
try {
|
|
295
295
|
t.dispatchEvent(new PointerEvent("pointermove", { bubbles: !0 }));
|
|
296
296
|
} finally {
|
|
297
|
-
|
|
297
|
+
M.current = !1;
|
|
298
298
|
}
|
|
299
299
|
}, [i]);
|
|
300
300
|
const V = A && A !== "off" ? A : void 0;
|
|
301
|
-
|
|
301
|
+
ee(() => {
|
|
302
302
|
const e = N.current;
|
|
303
303
|
e && (e.setAttribute("aria-expanded", String(i)), V && e.setAttribute("autocomplete", V));
|
|
304
304
|
});
|
|
305
|
-
const
|
|
305
|
+
const G = m(!1);
|
|
306
306
|
E(() => {
|
|
307
307
|
const e = N.current;
|
|
308
308
|
if (!e || !V) return;
|
|
309
309
|
const t = (r) => {
|
|
310
310
|
const l = r.inputType;
|
|
311
|
-
|
|
311
|
+
G.current = !l || l === "insertReplacementText";
|
|
312
312
|
};
|
|
313
313
|
return e.addEventListener("input", t), () => e.removeEventListener("input", t);
|
|
314
314
|
}, [V]), E(() => {
|
|
315
315
|
i || c(f);
|
|
316
316
|
}, [f, i]);
|
|
317
|
-
const z = (C ?
|
|
317
|
+
const z = (C ? v.disabled : !1) || !!ge, h = !!xe, Fe = (C ? v.required : !1) || !!ye, fe = C ? v.invalid : !!_e, Te = fe ? "error" : Ne, Oe = C && v.describedBy ? v.describedBy : Ie, W = oe ?? I("inputs.combobox.placeholder", "Search…"), Ve = Z(
|
|
318
318
|
() => (e, t, r) => {
|
|
319
319
|
if (k.current || f !== "" && t === f) return 1;
|
|
320
|
-
const l = w(e), s = w(t),
|
|
320
|
+
const l = w(e), s = w(t), g = r == null ? void 0 : r.map(w);
|
|
321
321
|
return L ? L(
|
|
322
322
|
l,
|
|
323
323
|
s,
|
|
324
|
-
(
|
|
324
|
+
(g == null ? void 0 : g[0]) ?? ""
|
|
325
325
|
) : st(
|
|
326
326
|
l,
|
|
327
327
|
s,
|
|
328
|
-
|
|
328
|
+
g
|
|
329
329
|
);
|
|
330
330
|
},
|
|
331
331
|
[L, f]
|
|
332
|
-
),
|
|
332
|
+
), X = (e) => {
|
|
333
333
|
D(e);
|
|
334
334
|
}, u = (e) => {
|
|
335
|
-
F ||
|
|
335
|
+
F || le(e), S == null || S(e);
|
|
336
336
|
}, Pe = (e) => {
|
|
337
337
|
const t = d.find((r) => r.value === e);
|
|
338
|
-
|
|
338
|
+
X(e), c((t == null ? void 0 : t.label) ?? ""), u(!1);
|
|
339
339
|
}, $e = (e) => {
|
|
340
340
|
U == null || U(e), u(!1);
|
|
341
341
|
}, je = (e) => {
|
|
342
342
|
var l;
|
|
343
343
|
const t = w(e.trim());
|
|
344
344
|
if (!t) return;
|
|
345
|
-
const r =
|
|
345
|
+
const r = ie ? ie(e.trim()) : (l = d.find(
|
|
346
346
|
(s) => w(s.value) === t || w(s.label) === t
|
|
347
347
|
)) == null ? void 0 : l.value;
|
|
348
348
|
return d.find((s) => s.value === r && !s.disabled);
|
|
349
349
|
}, He = (e) => {
|
|
350
|
-
if (!
|
|
351
|
-
if (
|
|
352
|
-
|
|
350
|
+
if (!h) {
|
|
351
|
+
if (G.current) {
|
|
352
|
+
G.current = !1;
|
|
353
353
|
const t = je(e);
|
|
354
354
|
if (t) {
|
|
355
|
-
|
|
355
|
+
X(t.value), c(t.label), i && u(!1);
|
|
356
356
|
return;
|
|
357
357
|
}
|
|
358
358
|
if (document.activeElement !== N.current) {
|
|
@@ -363,19 +363,19 @@ const he = Qe(
|
|
|
363
363
|
c(e), k.current || a == null || a(e), !i && e.length > 0 && !k.current && u(!0);
|
|
364
364
|
}
|
|
365
365
|
}, qe = () => {
|
|
366
|
-
!z && !
|
|
366
|
+
!z && !h && u(!0);
|
|
367
367
|
}, Be = () => {
|
|
368
|
-
!i && !z && !
|
|
368
|
+
!i && !z && !h && u(!0);
|
|
369
369
|
}, Le = () => {
|
|
370
370
|
k.current = !0;
|
|
371
371
|
}, Ue = () => {
|
|
372
372
|
var t;
|
|
373
|
-
if (k.current = !1,
|
|
373
|
+
if (k.current = !1, h) return;
|
|
374
374
|
const e = ((t = N.current) == null ? void 0 : t.value) ?? "";
|
|
375
375
|
c(e), a == null || a(e), e.length > 0 && u(!0);
|
|
376
376
|
}, Ke = (e) => {
|
|
377
377
|
if (!e.nativeEvent.isComposing) {
|
|
378
|
-
if ((e.key === "ArrowDown" || e.key === "ArrowUp") && !i && !z && !
|
|
378
|
+
if ((e.key === "ArrowDown" || e.key === "ArrowUp") && !i && !z && !h) {
|
|
379
379
|
e.preventDefault(), u(!0);
|
|
380
380
|
return;
|
|
381
381
|
}
|
|
@@ -388,9 +388,9 @@ const he = Qe(
|
|
|
388
388
|
}
|
|
389
389
|
}, Me = (e) => {
|
|
390
390
|
var t;
|
|
391
|
-
e.preventDefault(), e.stopPropagation(),
|
|
391
|
+
e.preventDefault(), e.stopPropagation(), X(""), c(""), a == null || a(""), u(!0), (t = N.current) == null || t.focus();
|
|
392
392
|
}, Ge = (e) => {
|
|
393
|
-
|
|
393
|
+
h && e || (u(e), e || c(f));
|
|
394
394
|
}, me = m(b);
|
|
395
395
|
E(() => {
|
|
396
396
|
me.current = b;
|
|
@@ -403,12 +403,12 @@ const he = Qe(
|
|
|
403
403
|
E(() => {
|
|
404
404
|
be.current = i;
|
|
405
405
|
}, [i]);
|
|
406
|
-
const
|
|
406
|
+
const Y = tt(
|
|
407
407
|
(e) => {
|
|
408
|
-
F ||
|
|
408
|
+
F || le(e), S == null || S(e);
|
|
409
409
|
},
|
|
410
|
-
[F,
|
|
411
|
-
), We =
|
|
410
|
+
[F, S]
|
|
411
|
+
), We = Z(
|
|
412
412
|
() => ({
|
|
413
413
|
getValue: () => me.current || null,
|
|
414
414
|
getQuery: () => pe.current,
|
|
@@ -425,49 +425,49 @@ const he = Qe(
|
|
|
425
425
|
clear: () => {
|
|
426
426
|
D(""), c(""), a == null || a("");
|
|
427
427
|
},
|
|
428
|
-
open: () =>
|
|
429
|
-
close: () =>
|
|
428
|
+
open: () => Y(!0),
|
|
429
|
+
close: () => Y(!1)
|
|
430
430
|
}),
|
|
431
|
-
[D, d,
|
|
431
|
+
[D, d, Y, a]
|
|
432
432
|
);
|
|
433
|
-
xt(Nt, We,
|
|
434
|
-
const Xe = B && !!b && !z && !
|
|
435
|
-
return /* @__PURE__ */ o(P.Root, { open: i, onOpenChange: Ge, children: /* @__PURE__ */
|
|
436
|
-
|
|
433
|
+
xt(Nt, We, re);
|
|
434
|
+
const Xe = B && !!b && !z && !h, Ye = dt(d), J = zt[_];
|
|
435
|
+
return /* @__PURE__ */ o(P.Root, { open: i, onOpenChange: Ge, children: /* @__PURE__ */ x(
|
|
436
|
+
y,
|
|
437
437
|
{
|
|
438
438
|
filter: Ve,
|
|
439
439
|
shouldFilter: !0,
|
|
440
440
|
loop: !0,
|
|
441
|
-
label:
|
|
441
|
+
label: K ?? (v.label || W),
|
|
442
442
|
className: "ds:w-full",
|
|
443
443
|
children: [
|
|
444
|
-
/* @__PURE__ */ o(P.Anchor, { asChild: !0, children: /* @__PURE__ */
|
|
444
|
+
/* @__PURE__ */ o(P.Anchor, { asChild: !0, children: /* @__PURE__ */ x(
|
|
445
445
|
"div",
|
|
446
446
|
{
|
|
447
|
-
ref:
|
|
447
|
+
ref: de,
|
|
448
448
|
className: Et({
|
|
449
449
|
size: _,
|
|
450
450
|
tone: Te,
|
|
451
451
|
className: we
|
|
452
452
|
}),
|
|
453
453
|
"data-component": "combobox",
|
|
454
|
-
"data-component-id":
|
|
454
|
+
"data-component-id": re,
|
|
455
455
|
children: [
|
|
456
456
|
/* @__PURE__ */ o(
|
|
457
|
-
|
|
457
|
+
y.Input,
|
|
458
458
|
{
|
|
459
459
|
ref: lt(ke, N),
|
|
460
460
|
value: p,
|
|
461
461
|
onValueChange: He,
|
|
462
462
|
dir: R == null ? void 0 : R.dir,
|
|
463
463
|
name: Se,
|
|
464
|
-
placeholder:
|
|
464
|
+
placeholder: W,
|
|
465
465
|
disabled: z,
|
|
466
|
-
readOnly:
|
|
466
|
+
readOnly: h,
|
|
467
467
|
required: Fe,
|
|
468
468
|
autoComplete: A,
|
|
469
469
|
"aria-describedby": Oe,
|
|
470
|
-
"aria-invalid":
|
|
470
|
+
"aria-invalid": fe || void 0,
|
|
471
471
|
onFocus: qe,
|
|
472
472
|
onClick: Be,
|
|
473
473
|
onKeyDown: Ke,
|
|
@@ -504,33 +504,34 @@ const he = Qe(
|
|
|
504
504
|
{
|
|
505
505
|
forceMount: !0,
|
|
506
506
|
hidden: !i,
|
|
507
|
-
"aria-label":
|
|
507
|
+
"aria-label": K ?? I("inputs.combobox.popupLabel", "Options"),
|
|
508
508
|
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
509
509
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
510
510
|
onInteractOutside: (e) => {
|
|
511
511
|
var r;
|
|
512
512
|
const t = e.target;
|
|
513
|
-
t && ((r =
|
|
513
|
+
t && ((r = de.current) != null && r.contains(t)) && e.preventDefault();
|
|
514
514
|
},
|
|
515
515
|
sideOffset: 4,
|
|
516
516
|
align: "start",
|
|
517
517
|
className: wt(),
|
|
518
|
-
children: /* @__PURE__ */
|
|
519
|
-
|
|
518
|
+
children: /* @__PURE__ */ x(
|
|
519
|
+
y.List,
|
|
520
520
|
{
|
|
521
|
-
ref:
|
|
521
|
+
ref: ce,
|
|
522
|
+
label: K ?? (v.label || W),
|
|
522
523
|
className: It,
|
|
523
524
|
onPointerMove: () => {
|
|
524
|
-
|
|
525
|
+
M.current || (O.current = !0);
|
|
525
526
|
},
|
|
526
527
|
onMouseDown: (e) => e.preventDefault(),
|
|
527
528
|
children: [
|
|
528
|
-
/* @__PURE__ */ o(
|
|
529
|
+
/* @__PURE__ */ o(y.Empty, { className: kt, children: /* @__PURE__ */ o("div", { role: "option", "aria-selected": !1, "aria-disabled": "true", children: Ee ?? I("inputs.combobox.empty", "No results found") }) }),
|
|
529
530
|
Ye.map(({ group: e, items: t }, r) => {
|
|
530
531
|
const l = t.map((s) => {
|
|
531
|
-
const
|
|
532
|
-
return /* @__PURE__ */
|
|
533
|
-
|
|
532
|
+
const g = s.value === b;
|
|
533
|
+
return /* @__PURE__ */ x(
|
|
534
|
+
y.Item,
|
|
534
535
|
{
|
|
535
536
|
value: s.value,
|
|
536
537
|
"data-option-id": s.value,
|
|
@@ -543,8 +544,8 @@ const he = Qe(
|
|
|
543
544
|
"span",
|
|
544
545
|
{
|
|
545
546
|
"aria-hidden": "true",
|
|
546
|
-
className: `ds:inline-flex ds:items-center ds:justify-center ${
|
|
547
|
-
children:
|
|
547
|
+
className: `ds:inline-flex ds:items-center ds:justify-center ${J}`,
|
|
548
|
+
children: g ? /* @__PURE__ */ o(St, { className: J }) : null
|
|
548
549
|
}
|
|
549
550
|
),
|
|
550
551
|
s.startAdornment ? (
|
|
@@ -560,23 +561,23 @@ const he = Qe(
|
|
|
560
561
|
}
|
|
561
562
|
)
|
|
562
563
|
) : null,
|
|
563
|
-
s.description ||
|
|
564
|
+
s.description || ae ? (
|
|
564
565
|
// Stacked: the label and its end content on one
|
|
565
566
|
// row, the description on a line of its own
|
|
566
567
|
// under them. In this DOM order the option's
|
|
567
568
|
// name reads label, end content, description.
|
|
568
|
-
/* @__PURE__ */
|
|
569
|
+
/* @__PURE__ */ x(
|
|
569
570
|
"span",
|
|
570
571
|
{
|
|
571
572
|
className: `${ut} ds:py-[var(--spacing-xs)]`,
|
|
572
573
|
children: [
|
|
573
|
-
/* @__PURE__ */
|
|
574
|
+
/* @__PURE__ */ x("span", { className: ft, children: [
|
|
574
575
|
/* @__PURE__ */ o(
|
|
575
576
|
"span",
|
|
576
577
|
{
|
|
577
578
|
dir: s.dir,
|
|
578
579
|
className: mt({
|
|
579
|
-
wrap:
|
|
580
|
+
wrap: ae,
|
|
580
581
|
className: "ds:flex-1"
|
|
581
582
|
}),
|
|
582
583
|
children: s.label
|
|
@@ -599,7 +600,7 @@ const he = Qe(
|
|
|
599
600
|
]
|
|
600
601
|
}
|
|
601
602
|
)
|
|
602
|
-
) : /* @__PURE__ */
|
|
603
|
+
) : /* @__PURE__ */ x(Ze, { children: [
|
|
603
604
|
/* @__PURE__ */ o(
|
|
604
605
|
"span",
|
|
605
606
|
{
|
|
@@ -623,13 +624,13 @@ const he = Qe(
|
|
|
623
624
|
);
|
|
624
625
|
});
|
|
625
626
|
return e ? /* @__PURE__ */ o(
|
|
626
|
-
|
|
627
|
+
y.Group,
|
|
627
628
|
{
|
|
628
629
|
heading: /* @__PURE__ */ o("span", { className: _t, children: e }),
|
|
629
630
|
children: l
|
|
630
631
|
},
|
|
631
632
|
`group-${e}`
|
|
632
|
-
) : /* @__PURE__ */ o(
|
|
633
|
+
) : /* @__PURE__ */ o(y.Group, { children: l }, `group-${r}`);
|
|
633
634
|
}),
|
|
634
635
|
Re && p.length > 0 ? /* @__PURE__ */ o(
|
|
635
636
|
At,
|
|
@@ -638,7 +639,7 @@ const he = Qe(
|
|
|
638
639
|
label: I("inputs.combobox.create", 'Create "{{value}}"', {
|
|
639
640
|
value: p
|
|
640
641
|
}),
|
|
641
|
-
iconClass:
|
|
642
|
+
iconClass: J,
|
|
642
643
|
size: _,
|
|
643
644
|
onSelect: $e
|
|
644
645
|
}
|
|
@@ -664,4 +665,4 @@ export {
|
|
|
664
665
|
ve as d,
|
|
665
666
|
Et as e
|
|
666
667
|
};
|
|
667
|
-
//# sourceMappingURL=combobox-
|
|
668
|
+
//# sourceMappingURL=combobox-CDPm_n0p.js.map
|