@alfadocs/ui-kit-debug 1.12.6 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/_chunks/{actions-cell-renderer-DnSLrgQD.js → actions-cell-renderer-ReurEy5i.js} +2 -2
  2. package/dist/_chunks/{actions-cell-renderer-DnSLrgQD.js.map → actions-cell-renderer-ReurEy5i.js.map} +1 -1
  3. package/dist/_chunks/{address-fields-CZP4Wncx.js → address-fields-CZ0pEdEI.js} +4 -4
  4. package/dist/_chunks/{address-fields-CZP4Wncx.js.map → address-fields-CZ0pEdEI.js.map} +1 -1
  5. package/dist/_chunks/{ai-prompt-input-DnbfEJnr.js → ai-prompt-input-CrHr-5H8.js} +2 -2
  6. package/dist/_chunks/{ai-prompt-input-DnbfEJnr.js.map → ai-prompt-input-CrHr-5H8.js.map} +1 -1
  7. package/dist/_chunks/{anamnesis-summary-rows-BfhxWPO3.js → anamnesis-summary-rows-CRWO8x8g.js} +4 -4
  8. package/dist/_chunks/{anamnesis-summary-rows-BfhxWPO3.js.map → anamnesis-summary-rows-CRWO8x8g.js.map} +1 -1
  9. package/dist/_chunks/{audio-recorder-EWBCNIsd.js → audio-recorder-DXG6LTtO.js} +2 -2
  10. package/dist/_chunks/{audio-recorder-EWBCNIsd.js.map → audio-recorder-DXG6LTtO.js.map} +1 -1
  11. package/dist/_chunks/{autocomplete-BrONKN8l.js → autocomplete-MpBhz-fG.js} +86 -74
  12. package/dist/_chunks/{autocomplete-BrONKN8l.js.map → autocomplete-MpBhz-fG.js.map} +1 -1
  13. package/dist/_chunks/{balance-badge-cell-7L6nzB29.js → balance-badge-cell--iQ_gtmi.js} +4 -4
  14. package/dist/_chunks/{balance-badge-cell-7L6nzB29.js.map → balance-badge-cell--iQ_gtmi.js.map} +1 -1
  15. package/dist/_chunks/{bishop-score-Cnu0xs-z.js → bishop-score-CJUVBfAu.js} +2 -2
  16. package/dist/_chunks/{bishop-score-Cnu0xs-z.js.map → bishop-score-CJUVBfAu.js.map} +1 -1
  17. package/dist/_chunks/{booking-CBHKdsZl.js → booking-DQbo6mQF.js} +609 -591
  18. package/dist/_chunks/booking-DQbo6mQF.js.map +1 -0
  19. package/dist/_chunks/{care-plan-card-aDN4oem9.js → care-plan-card-D-FMfDKH.js} +2 -2
  20. package/dist/_chunks/{care-plan-card-aDN4oem9.js.map → care-plan-card-D-FMfDKH.js.map} +1 -1
  21. package/dist/_chunks/{care-plan-entry-card-BEhANdBE.js → care-plan-entry-card-Bvw_9T-d.js} +2 -2
  22. package/dist/_chunks/{care-plan-entry-card-BEhANdBE.js.map → care-plan-entry-card-Bvw_9T-d.js.map} +1 -1
  23. package/dist/_chunks/{care-plan-header-CkpPyQqG.js → care-plan-header-B5CBE0zu.js} +2 -2
  24. package/dist/_chunks/{care-plan-header-CkpPyQqG.js.map → care-plan-header-B5CBE0zu.js.map} +1 -1
  25. package/dist/_chunks/{city-input-towzBenY.js → city-input-DaQc-Hbj.js} +2 -2
  26. package/dist/_chunks/{city-input-towzBenY.js.map → city-input-DaQc-Hbj.js.map} +1 -1
  27. package/dist/_chunks/{combobox-DiMLItyu.js → combobox-D7_NLE2Z.js} +89 -81
  28. package/dist/_chunks/{combobox-DiMLItyu.js.map → combobox-D7_NLE2Z.js.map} +1 -1
  29. package/dist/_chunks/{contact-profile-card-BMIBr5s9.js → contact-profile-card-BZqi8Hck.js} +38 -36
  30. package/dist/_chunks/{contact-profile-card-BMIBr5s9.js.map → contact-profile-card-BZqi8Hck.js.map} +1 -1
  31. package/dist/_chunks/{country-select-UEF9BEeQ.js → country-select-DzbPFktV.js} +2 -2
  32. package/dist/_chunks/{country-select-UEF9BEeQ.js.map → country-select-DzbPFktV.js.map} +1 -1
  33. package/dist/_chunks/{document-preview-oyx9RhCo.js → document-preview-CDb-n_W7.js} +2 -2
  34. package/dist/_chunks/{document-preview-oyx9RhCo.js.map → document-preview-CDb-n_W7.js.map} +1 -1
  35. package/dist/_chunks/{face-scheme-CZaKm6fG.js → face-scheme-DA2vjqaM.js} +2 -2
  36. package/dist/_chunks/{face-scheme-CZaKm6fG.js.map → face-scheme-DA2vjqaM.js.map} +1 -1
  37. package/dist/_chunks/{file-manager-C0y7HBAN.js → file-manager-UsD8e_AB.js} +2 -2
  38. package/dist/_chunks/{file-manager-C0y7HBAN.js.map → file-manager-UsD8e_AB.js.map} +1 -1
  39. package/dist/_chunks/{gestational-age-calculator-CxZelpu2.js → gestational-age-calculator-CiOQjzgx.js} +2 -2
  40. package/dist/_chunks/{gestational-age-calculator-CxZelpu2.js.map → gestational-age-calculator-CiOQjzgx.js.map} +1 -1
  41. package/dist/_chunks/key-value-pair-BIBdZBLg.js +188 -0
  42. package/dist/_chunks/key-value-pair-BIBdZBLg.js.map +1 -0
  43. package/dist/_chunks/{link-cell-renderer-CenJx-_7.js → link-cell-renderer-CIASXsVM.js} +4 -4
  44. package/dist/_chunks/{link-cell-renderer-CenJx-_7.js.map → link-cell-renderer-CIASXsVM.js.map} +1 -1
  45. package/dist/_chunks/{multi-select-DqL4o0qV.js → multi-select-DYOvx2SJ.js} +56 -48
  46. package/dist/_chunks/{multi-select-DqL4o0qV.js.map → multi-select-DYOvx2SJ.js.map} +1 -1
  47. package/dist/_chunks/{muscle-scheme-yfzP_xoJ.js → muscle-scheme-BSJsI4-I.js} +2 -2
  48. package/dist/_chunks/{muscle-scheme-yfzP_xoJ.js.map → muscle-scheme-BSJsI4-I.js.map} +1 -1
  49. package/dist/_chunks/{optical-prescription-Dj3Eh5Ok.js → optical-prescription-BvwuqTpl.js} +2 -2
  50. package/dist/_chunks/{optical-prescription-Dj3Eh5Ok.js.map → optical-prescription-BvwuqTpl.js.map} +1 -1
  51. package/dist/_chunks/{patient-details-xrqe13az.js → patient-details-BQaUzPqp.js} +5 -5
  52. package/dist/_chunks/{patient-details-xrqe13az.js.map → patient-details-BQaUzPqp.js.map} +1 -1
  53. package/dist/_chunks/{patient-search-D5ufYoRc.js → patient-search-HeEUB-_X.js} +2 -2
  54. package/dist/_chunks/{patient-search-D5ufYoRc.js.map → patient-search-HeEUB-_X.js.map} +1 -1
  55. package/dist/_chunks/{patient-summary-card-CBfuDvJ5.js → patient-summary-card-CvDxhbBR.js} +2 -2
  56. package/dist/_chunks/{patient-summary-card-CBfuDvJ5.js.map → patient-summary-card-CvDxhbBR.js.map} +1 -1
  57. package/dist/_chunks/{payment-request-card-YVCcCZ25.js → payment-request-card-lmKLwsDs.js} +2 -2
  58. package/dist/_chunks/{payment-request-card-YVCcCZ25.js.map → payment-request-card-lmKLwsDs.js.map} +1 -1
  59. package/dist/_chunks/{periodontal-chart-BatZEFar.js → periodontal-chart-B9fphroR.js} +2 -2
  60. package/dist/_chunks/{periodontal-chart-BatZEFar.js.map → periodontal-chart-B9fphroR.js.map} +1 -1
  61. package/dist/_chunks/{periodontal-chart-card-BBpY_rBc.js → periodontal-chart-card-qEZPXj83.js} +2 -2
  62. package/dist/_chunks/{periodontal-chart-card-BBpY_rBc.js.map → periodontal-chart-card-qEZPXj83.js.map} +1 -1
  63. package/dist/_chunks/{pregnancy-dating-DtToyMyc.js → pregnancy-dating-D2wchD11.js} +2 -2
  64. package/dist/_chunks/{pregnancy-dating-DtToyMyc.js.map → pregnancy-dating-D2wchD11.js.map} +1 -1
  65. package/dist/_chunks/{province-select-BDywtmL-.js → province-select-BBc7s7vR.js} +2 -2
  66. package/dist/_chunks/{province-select-BDywtmL-.js.map → province-select-BBc7s7vR.js.map} +1 -1
  67. package/dist/_chunks/{select-BW5ecXlX.js → select-Bi8zril7.js} +165 -136
  68. package/dist/_chunks/select-Bi8zril7.js.map +1 -0
  69. package/dist/_chunks/{signature-request-DVDTKLjM.js → signature-request-CUe903hj.js} +2 -2
  70. package/dist/_chunks/{signature-request-DVDTKLjM.js.map → signature-request-CUe903hj.js.map} +1 -1
  71. package/dist/_chunks/{tabs-CBb2AidH.js → tabs-DqKtTIjZ.js} +2 -2
  72. package/dist/_chunks/{tabs-CBb2AidH.js.map → tabs-DqKtTIjZ.js.map} +1 -1
  73. package/dist/_chunks/{tasks-panel-Do5SFp-j.js → tasks-panel-DPCNaRko.js} +2 -2
  74. package/dist/_chunks/{tasks-panel-Do5SFp-j.js.map → tasks-panel-DPCNaRko.js.map} +1 -1
  75. package/dist/_chunks/{tooth-scheme-WdyVymQ1.js → tooth-scheme-2IsmbE6w.js} +2 -2
  76. package/dist/_chunks/{tooth-scheme-WdyVymQ1.js.map → tooth-scheme-2IsmbE6w.js.map} +1 -1
  77. package/dist/_chunks/{unit-converter-BPumXMA6.js → unit-converter-C6jMjqL9.js} +2 -2
  78. package/dist/_chunks/{unit-converter-BPumXMA6.js.map → unit-converter-C6jMjqL9.js.map} +1 -1
  79. package/dist/_chunks/{workflow-map-DE_ribRM.js → workflow-map-wcw3t6g4.js} +2 -2
  80. package/dist/_chunks/{workflow-map-DE_ribRM.js.map → workflow-map-wcw3t6g4.js.map} +1 -1
  81. package/dist/agent-catalog.json +1 -1
  82. package/dist/components/_shared/option.d.ts +1 -0
  83. package/dist/components/_shared/option.d.ts.map +1 -1
  84. package/dist/components/address-fields/index.js +1 -1
  85. package/dist/components/ai-prompt-input/index.js +1 -1
  86. package/dist/components/audio-recorder/index.js +1 -1
  87. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  88. package/dist/components/autocomplete/index.js +1 -1
  89. package/dist/components/bishop-score/index.js +1 -1
  90. package/dist/components/booking/booking.d.ts.map +1 -1
  91. package/dist/components/booking/index.js +1 -1
  92. package/dist/components/care-plan-card/index.js +1 -1
  93. package/dist/components/care-plan-entry-card/index.js +1 -1
  94. package/dist/components/care-plan-header/index.js +1 -1
  95. package/dist/components/city-input/index.js +1 -1
  96. package/dist/components/combobox/combobox.d.ts.map +1 -1
  97. package/dist/components/combobox/index.js +1 -1
  98. package/dist/components/contact-profile-card/contact-profile-card.d.ts.map +1 -1
  99. package/dist/components/contact-profile-card/index.js +1 -1
  100. package/dist/components/country-select/index.js +1 -1
  101. package/dist/components/data-table/index.js +2 -2
  102. package/dist/components/document-preview/index.js +1 -1
  103. package/dist/components/face-scheme/index.js +1 -1
  104. package/dist/components/file-manager/index.js +1 -1
  105. package/dist/components/gestational-age-calculator/index.js +1 -1
  106. package/dist/components/key-value-pair/index.js +1 -1
  107. package/dist/components/key-value-pair/key-value-pair.d.ts +16 -0
  108. package/dist/components/key-value-pair/key-value-pair.d.ts.map +1 -1
  109. package/dist/components/multi-select/index.js +1 -1
  110. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  111. package/dist/components/muscle-scheme/index.js +1 -1
  112. package/dist/components/optical-prescription/index.js +1 -1
  113. package/dist/components/patient-details/index.js +1 -1
  114. package/dist/components/patient-search/index.js +1 -1
  115. package/dist/components/patient-summary-card/index.js +1 -1
  116. package/dist/components/patient-table/index.js +1 -1
  117. package/dist/components/payment-card/index.js +1 -1
  118. package/dist/components/periodontal-chart/index.js +1 -1
  119. package/dist/components/periodontal-chart-card/index.js +1 -1
  120. package/dist/components/pregnancy-dating/index.js +1 -1
  121. package/dist/components/province-select/index.js +1 -1
  122. package/dist/components/select/index.js +1 -1
  123. package/dist/components/select/select.d.ts +24 -0
  124. package/dist/components/select/select.d.ts.map +1 -1
  125. package/dist/components/skeleton-scheme/index.js +1 -1
  126. package/dist/components/tabs/index.js +1 -1
  127. package/dist/components/tasks-panel/index.js +1 -1
  128. package/dist/components/tooth-scheme/index.js +1 -1
  129. package/dist/components/unit-converter/index.js +1 -1
  130. package/dist/components/workflow/index.js +1 -1
  131. package/dist/index.js +40 -40
  132. package/dist/patterns/anamnesis/index.js +1 -1
  133. package/dist/patterns/signature-request/index.js +1 -1
  134. package/package.json +1 -1
  135. package/dist/_chunks/booking-CBHKdsZl.js.map +0 -1
  136. package/dist/_chunks/key-value-pair-BubG4fUa.js +0 -144
  137. package/dist/_chunks/key-value-pair-BubG4fUa.js.map +0 -1
  138. package/dist/_chunks/select-BW5ecXlX.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
2
  import { forwardRef as N, useMemo as p, useCallback as O, useRef as h, useEffect as z } from "react";
3
3
  import { useTranslation as U } from "react-i18next";
4
- import { C as F } from "./combobox-DiMLItyu.js";
4
+ import { C as F } from "./combobox-D7_NLE2Z.js";
5
5
  import { u as y } from "./use-controllable-state-BiY4xTzM.js";
6
6
  import { u as G } from "./registry-DvAUVLHh.js";
7
7
  const w = [
@@ -258,4 +258,4 @@ export {
258
258
  k as P,
259
259
  _ as p
260
260
  };
261
- //# sourceMappingURL=province-select-BDywtmL-.js.map
261
+ //# sourceMappingURL=province-select-BBc7s7vR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"province-select-BDywtmL-.js","sources":["../../src/components/province-select/it-provinces.ts","../../src/components/province-select/province-select.agent.ts","../../src/components/province-select/province-select.tsx"],"sourcesContent":["// Bundled closed dataset for ProvinceSelect, transcribed from platform Provinces.php.\n// Italy is the only country whose subdivisions the kit bundles — all other countries\n// are consumer-injected.\n\nexport interface ItalianProvince {\n /** 2-letter sigla, UPPERCASE (e.g. \"MI\") */\n code: string;\n /** Full province name (e.g. \"Milano\") */\n name: string;\n}\n\nexport const IT_PROVINCES: readonly ItalianProvince[] = [\n { code: 'AG', name: 'Agrigento' },\n { code: 'AL', name: 'Alessandria' },\n { code: 'AN', name: 'Ancona' },\n { code: 'AO', name: 'Aosta' },\n { code: 'AR', name: 'Arezzo' },\n { code: 'AP', name: 'Ascoli Piceno' },\n { code: 'AT', name: 'Asti' },\n { code: 'AV', name: 'Avellino' },\n { code: 'BA', name: 'Bari' },\n { code: 'BT', name: 'Barletta-Andria-Trani' },\n { code: 'BL', name: 'Belluno' },\n { code: 'BN', name: 'Benevento' },\n { code: 'BG', name: 'Bergamo' },\n { code: 'BI', name: 'Biella' },\n { code: 'BO', name: 'Bologna' },\n { code: 'BZ', name: 'Bolzano' },\n { code: 'BS', name: 'Brescia' },\n { code: 'BR', name: 'Brindisi' },\n { code: 'CA', name: 'Cagliari' },\n { code: 'CL', name: 'Caltanissetta' },\n { code: 'CB', name: 'Campobasso' },\n { code: 'CI', name: 'Carbonia-Iglesias' },\n { code: 'CE', name: 'Caserta' },\n { code: 'CT', name: 'Catania' },\n { code: 'CZ', name: 'Catanzaro' },\n { code: 'CH', name: 'Chieti' },\n { code: 'CO', name: 'Como' },\n { code: 'CS', name: 'Cosenza' },\n { code: 'CR', name: 'Cremona' },\n { code: 'KR', name: 'Crotone' },\n { code: 'CN', name: 'Cuneo' },\n { code: 'EN', name: 'Enna' },\n { code: 'FM', name: 'Fermo' },\n { code: 'FE', name: 'Ferrara' },\n { code: 'FI', name: 'Firenze' },\n { code: 'FG', name: 'Foggia' },\n { code: 'FC', name: 'Forlì-Cesena' },\n { code: 'FR', name: 'Frosinone' },\n { code: 'GE', name: 'Genova' },\n { code: 'GO', name: 'Gorizia' },\n { code: 'GR', name: 'Grosseto' },\n { code: 'IM', name: 'Imperia' },\n { code: 'IS', name: 'Isernia' },\n { code: 'AQ', name: \"L'Aquila\" },\n { code: 'SP', name: 'La Spezia' },\n { code: 'LT', name: 'Latina' },\n { code: 'LE', name: 'Lecce' },\n { code: 'LC', name: 'Lecco' },\n { code: 'LI', name: 'Livorno' },\n { code: 'LO', name: 'Lodi' },\n { code: 'LU', name: 'Lucca' },\n { code: 'MC', name: 'Macerata' },\n { code: 'MN', name: 'Mantova' },\n { code: 'MS', name: 'Massa-Carrara' },\n { code: 'MT', name: 'Matera' },\n { code: 'VS', name: 'Medio Campidano' },\n { code: 'ME', name: 'Messina' },\n { code: 'MI', name: 'Milano' },\n { code: 'MO', name: 'Modena' },\n { code: 'MB', name: 'Monza e della Brianza' },\n { code: 'NA', name: 'Napoli' },\n { code: 'NO', name: 'Novara' },\n { code: 'NU', name: 'Nuoro' },\n { code: 'OT', name: 'Olbia-Tempio' },\n { code: 'OR', name: 'Oristano' },\n { code: 'PD', name: 'Padova' },\n { code: 'PA', name: 'Palermo' },\n { code: 'PR', name: 'Parma' },\n { code: 'PV', name: 'Pavia' },\n { code: 'PG', name: 'Perugia' },\n { code: 'PU', name: 'Pesaro e Urbino' },\n { code: 'PE', name: 'Pescara' },\n { code: 'PC', name: 'Piacenza' },\n { code: 'PI', name: 'Pisa' },\n { code: 'PT', name: 'Pistoia' },\n { code: 'PN', name: 'Pordenone' },\n { code: 'PZ', name: 'Potenza' },\n { code: 'PO', name: 'Prato' },\n { code: 'RG', name: 'Ragusa' },\n { code: 'RA', name: 'Ravenna' },\n { code: 'RC', name: 'Reggio Calabria' },\n { code: 'RE', name: 'Reggio Emilia' },\n { code: 'RI', name: 'Rieti' },\n { code: 'RN', name: 'Rimini' },\n { code: 'RM', name: 'Roma' },\n { code: 'RO', name: 'Rovigo' },\n { code: 'SA', name: 'Salerno' },\n { code: 'SS', name: 'Sassari' },\n { code: 'SV', name: 'Savona' },\n { code: 'SI', name: 'Siena' },\n { code: 'SR', name: 'Siracusa' },\n { code: 'SO', name: 'Sondrio' },\n { code: 'SU', name: 'Sud Sardegna' },\n { code: 'TA', name: 'Taranto' },\n { code: 'TE', name: 'Teramo' },\n { code: 'TR', name: 'Terni' },\n { code: 'TO', name: 'Torino' },\n { code: 'TP', name: 'Trapani' },\n { code: 'TN', name: 'Trento' },\n { code: 'TV', name: 'Treviso' },\n { code: 'TS', name: 'Trieste' },\n { code: 'UD', name: 'Udine' },\n { code: 'VA', name: 'Varese' },\n { code: 'VE', name: 'Venezia' },\n { code: 'VB', name: 'Verbano-Cusio-Ossola' },\n { code: 'VC', name: 'Vercelli' },\n { code: 'VR', name: 'Verona' },\n { code: 'VV', name: 'Vibo Valentia' },\n { code: 'VI', name: 'Vicenza' },\n { code: 'VT', name: 'Viterbo' },\n] as const;\n","import type { AgentAdapter } from '../../agent/types';\n\n// Curated agent-readiness handle — the province-select wrapper owns the\n// selection; the inner Combobox registers its own `combobox` adapter for the\n// mechanical open/filter/close concerns.\nexport interface ProvinceSelectHandle {\n getValue: () => string | null;\n setValue: (value: string | null) => void;\n clear: () => void;\n}\n\nexport const provinceSelectAgent: AgentAdapter<ProvinceSelectHandle> = {\n id: 'province-select',\n capabilities: ['select_single', 'set_value'],\n state: {\n value: {\n type: 'string | null',\n descriptionKey: 'ui.agent.provinceSelect.state.value',\n description:\n 'Selected province code (UPPERCASED sigla for Italy), or null when nothing is selected.',\n read: (handle) => handle.getValue(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string | null }',\n argsSchema: {\n type: 'object',\n properties: {\n value: {\n type: ['string', 'null'],\n description:\n 'Province code to select (UPPERCASED), or null to clear.',\n },\n },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.provinceSelect.actions.setValue',\n description: 'Set the selected province by code.',\n examples: [{ args: { value: 'MI' }, note: 'Select Milano.' }],\n invoke: (handle, args: { value: string | null }) => {\n handle.setValue(args.value);\n },\n },\n clear_selection: {\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.provinceSelect.actions.clearSelection',\n description: 'Clear the selected province.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'province-select' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n // The inner Combobox emits `data-option-id` and registers its own\n // `combobox` adapter; both adapters intentionally coexist (the registry\n // keys by id + instanceId), so this hook is reachable from this root too.\n item: {\n attr: 'data-option-id',\n description: 'Each province option emits its code as data-option-id.',\n },\n },\n};\n","import { forwardRef, useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Combobox, type ComboboxOption } from '../combobox/combobox';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useAgentRegistration } from '../../agent';\nimport { IT_PROVINCES } from './it-provinces';\nimport {\n provinceSelectAgent,\n type ProvinceSelectHandle,\n} from './province-select.agent';\n\n/* ------------------------------------------------------------------ */\n/* Public API */\n/* */\n/* A country-gated province/region picker built on Combobox. Italy is */\n/* the only country whose subdivisions the kit bundles (the 110 siglas, */\n/* transcribed from the platform's Provinces validation set). For every */\n/* other country the consumer injects `options`. The value is the */\n/* 2-letter sigla, UPPERCASED, matching `StructuredAddress.province`. */\n/* ------------------------------------------------------------------ */\n\nexport interface ProvinceSelectProps {\n /** Country whose subdivisions to show. `'it'` → built-in Italian provinces. */\n country?: string;\n /** Selected province — UPPERCASED (e.g. `'MI'`). */\n value?: string;\n defaultValue?: string;\n /** Fires with the new UPPERCASED code (or `''` when cleared). */\n onValueChange?: (code: string) => void;\n /**\n * Consumer-provided options for non-IT countries (or to override the\n * built-in Italian set). Option `value`s MUST already be UPPERCASED — they\n * are stored and emitted uppercased, so a lowercase value won't round-trip\n * (the display breaks on the next render).\n */\n options?: ComboboxOption[];\n placeholder?: string;\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. REQUIRED inside a `<FormField>` (see CountrySelect); set\n * it to the visible label text (e.g. `\"Province\"`).\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 ProvinceSelect = forwardRef<HTMLInputElement, ProvinceSelectProps>(\n function ProvinceSelect(\n {\n country,\n value: valueProp,\n defaultValue,\n onValueChange,\n options,\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();\n\n const [value, setValue] = useControllableState<string>({\n value: valueProp === undefined ? undefined : valueProp.toUpperCase(),\n defaultValue: defaultValue?.toUpperCase(),\n onChange: onValueChange,\n });\n\n const resolvedOptions = useMemo<ComboboxOption[]>(() => {\n if (options) return options;\n if (country?.toLowerCase() === 'it') {\n return IT_PROVINCES.map((p) => ({\n value: p.code,\n label: `${p.name} (${p.code})`,\n }));\n }\n return [];\n }, [options, country]);\n\n const handleChange = useCallback(\n (next: string) => setValue(next.toUpperCase()),\n [setValue],\n );\n\n const valueRef = useRef(value);\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n const agentHandle = useMemo<ProvinceSelectHandle>(\n () => ({\n getValue: () => valueRef.current || null,\n setValue: (next) => setValue((next ?? '').toUpperCase()),\n clear: () => setValue(''),\n }),\n [setValue],\n );\n useAgentRegistration(provinceSelectAgent, agentHandle, id);\n\n return (\n <div\n data-component=\"province-select\"\n data-component-id={id}\n className={['ds:w-full', className].filter(Boolean).join(' ')}\n >\n <Combobox\n ref={ref}\n options={resolvedOptions}\n value={value ?? ''}\n onValueChange={handleChange}\n placeholder={\n placeholder ??\n t('inputs.provinceSelect.placeholder', 'Search provinces')\n }\n emptyMessage={t(\n 'inputs.provinceSelect.empty',\n 'No provinces available',\n )}\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 autoComplete=\"address-level1\"\n aria-label={ariaLabel}\n aria-invalid={ariaInvalid}\n aria-describedby={ariaDescribedBy}\n />\n </div>\n );\n },\n);\n\nProvinceSelect.displayName = 'ProvinceSelect';\n"],"names":["IT_PROVINCES","provinceSelectAgent","handle","args","ProvinceSelect","forwardRef","country","valueProp","defaultValue","onValueChange","options","placeholder","clearable","disabled","readOnly","required","name","id","size","tone","ariaLabel","ariaInvalid","ariaDescribedBy","className","ref","t","useTranslation","value","setValue","useControllableState","resolvedOptions","useMemo","p","handleChange","useCallback","next","valueRef","useRef","useEffect","agentHandle","useAgentRegistration","jsx","Combobox"],"mappings":"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"}
1
+ {"version":3,"file":"province-select-BBc7s7vR.js","sources":["../../src/components/province-select/it-provinces.ts","../../src/components/province-select/province-select.agent.ts","../../src/components/province-select/province-select.tsx"],"sourcesContent":["// Bundled closed dataset for ProvinceSelect, transcribed from platform Provinces.php.\n// Italy is the only country whose subdivisions the kit bundles — all other countries\n// are consumer-injected.\n\nexport interface ItalianProvince {\n /** 2-letter sigla, UPPERCASE (e.g. \"MI\") */\n code: string;\n /** Full province name (e.g. \"Milano\") */\n name: string;\n}\n\nexport const IT_PROVINCES: readonly ItalianProvince[] = [\n { code: 'AG', name: 'Agrigento' },\n { code: 'AL', name: 'Alessandria' },\n { code: 'AN', name: 'Ancona' },\n { code: 'AO', name: 'Aosta' },\n { code: 'AR', name: 'Arezzo' },\n { code: 'AP', name: 'Ascoli Piceno' },\n { code: 'AT', name: 'Asti' },\n { code: 'AV', name: 'Avellino' },\n { code: 'BA', name: 'Bari' },\n { code: 'BT', name: 'Barletta-Andria-Trani' },\n { code: 'BL', name: 'Belluno' },\n { code: 'BN', name: 'Benevento' },\n { code: 'BG', name: 'Bergamo' },\n { code: 'BI', name: 'Biella' },\n { code: 'BO', name: 'Bologna' },\n { code: 'BZ', name: 'Bolzano' },\n { code: 'BS', name: 'Brescia' },\n { code: 'BR', name: 'Brindisi' },\n { code: 'CA', name: 'Cagliari' },\n { code: 'CL', name: 'Caltanissetta' },\n { code: 'CB', name: 'Campobasso' },\n { code: 'CI', name: 'Carbonia-Iglesias' },\n { code: 'CE', name: 'Caserta' },\n { code: 'CT', name: 'Catania' },\n { code: 'CZ', name: 'Catanzaro' },\n { code: 'CH', name: 'Chieti' },\n { code: 'CO', name: 'Como' },\n { code: 'CS', name: 'Cosenza' },\n { code: 'CR', name: 'Cremona' },\n { code: 'KR', name: 'Crotone' },\n { code: 'CN', name: 'Cuneo' },\n { code: 'EN', name: 'Enna' },\n { code: 'FM', name: 'Fermo' },\n { code: 'FE', name: 'Ferrara' },\n { code: 'FI', name: 'Firenze' },\n { code: 'FG', name: 'Foggia' },\n { code: 'FC', name: 'Forlì-Cesena' },\n { code: 'FR', name: 'Frosinone' },\n { code: 'GE', name: 'Genova' },\n { code: 'GO', name: 'Gorizia' },\n { code: 'GR', name: 'Grosseto' },\n { code: 'IM', name: 'Imperia' },\n { code: 'IS', name: 'Isernia' },\n { code: 'AQ', name: \"L'Aquila\" },\n { code: 'SP', name: 'La Spezia' },\n { code: 'LT', name: 'Latina' },\n { code: 'LE', name: 'Lecce' },\n { code: 'LC', name: 'Lecco' },\n { code: 'LI', name: 'Livorno' },\n { code: 'LO', name: 'Lodi' },\n { code: 'LU', name: 'Lucca' },\n { code: 'MC', name: 'Macerata' },\n { code: 'MN', name: 'Mantova' },\n { code: 'MS', name: 'Massa-Carrara' },\n { code: 'MT', name: 'Matera' },\n { code: 'VS', name: 'Medio Campidano' },\n { code: 'ME', name: 'Messina' },\n { code: 'MI', name: 'Milano' },\n { code: 'MO', name: 'Modena' },\n { code: 'MB', name: 'Monza e della Brianza' },\n { code: 'NA', name: 'Napoli' },\n { code: 'NO', name: 'Novara' },\n { code: 'NU', name: 'Nuoro' },\n { code: 'OT', name: 'Olbia-Tempio' },\n { code: 'OR', name: 'Oristano' },\n { code: 'PD', name: 'Padova' },\n { code: 'PA', name: 'Palermo' },\n { code: 'PR', name: 'Parma' },\n { code: 'PV', name: 'Pavia' },\n { code: 'PG', name: 'Perugia' },\n { code: 'PU', name: 'Pesaro e Urbino' },\n { code: 'PE', name: 'Pescara' },\n { code: 'PC', name: 'Piacenza' },\n { code: 'PI', name: 'Pisa' },\n { code: 'PT', name: 'Pistoia' },\n { code: 'PN', name: 'Pordenone' },\n { code: 'PZ', name: 'Potenza' },\n { code: 'PO', name: 'Prato' },\n { code: 'RG', name: 'Ragusa' },\n { code: 'RA', name: 'Ravenna' },\n { code: 'RC', name: 'Reggio Calabria' },\n { code: 'RE', name: 'Reggio Emilia' },\n { code: 'RI', name: 'Rieti' },\n { code: 'RN', name: 'Rimini' },\n { code: 'RM', name: 'Roma' },\n { code: 'RO', name: 'Rovigo' },\n { code: 'SA', name: 'Salerno' },\n { code: 'SS', name: 'Sassari' },\n { code: 'SV', name: 'Savona' },\n { code: 'SI', name: 'Siena' },\n { code: 'SR', name: 'Siracusa' },\n { code: 'SO', name: 'Sondrio' },\n { code: 'SU', name: 'Sud Sardegna' },\n { code: 'TA', name: 'Taranto' },\n { code: 'TE', name: 'Teramo' },\n { code: 'TR', name: 'Terni' },\n { code: 'TO', name: 'Torino' },\n { code: 'TP', name: 'Trapani' },\n { code: 'TN', name: 'Trento' },\n { code: 'TV', name: 'Treviso' },\n { code: 'TS', name: 'Trieste' },\n { code: 'UD', name: 'Udine' },\n { code: 'VA', name: 'Varese' },\n { code: 'VE', name: 'Venezia' },\n { code: 'VB', name: 'Verbano-Cusio-Ossola' },\n { code: 'VC', name: 'Vercelli' },\n { code: 'VR', name: 'Verona' },\n { code: 'VV', name: 'Vibo Valentia' },\n { code: 'VI', name: 'Vicenza' },\n { code: 'VT', name: 'Viterbo' },\n] as const;\n","import type { AgentAdapter } from '../../agent/types';\n\n// Curated agent-readiness handle — the province-select wrapper owns the\n// selection; the inner Combobox registers its own `combobox` adapter for the\n// mechanical open/filter/close concerns.\nexport interface ProvinceSelectHandle {\n getValue: () => string | null;\n setValue: (value: string | null) => void;\n clear: () => void;\n}\n\nexport const provinceSelectAgent: AgentAdapter<ProvinceSelectHandle> = {\n id: 'province-select',\n capabilities: ['select_single', 'set_value'],\n state: {\n value: {\n type: 'string | null',\n descriptionKey: 'ui.agent.provinceSelect.state.value',\n description:\n 'Selected province code (UPPERCASED sigla for Italy), or null when nothing is selected.',\n read: (handle) => handle.getValue(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string | null }',\n argsSchema: {\n type: 'object',\n properties: {\n value: {\n type: ['string', 'null'],\n description:\n 'Province code to select (UPPERCASED), or null to clear.',\n },\n },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.provinceSelect.actions.setValue',\n description: 'Set the selected province by code.',\n examples: [{ args: { value: 'MI' }, note: 'Select Milano.' }],\n invoke: (handle, args: { value: string | null }) => {\n handle.setValue(args.value);\n },\n },\n clear_selection: {\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.provinceSelect.actions.clearSelection',\n description: 'Clear the selected province.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'province-select' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n // The inner Combobox emits `data-option-id` and registers its own\n // `combobox` adapter; both adapters intentionally coexist (the registry\n // keys by id + instanceId), so this hook is reachable from this root too.\n item: {\n attr: 'data-option-id',\n description: 'Each province option emits its code as data-option-id.',\n },\n },\n};\n","import { forwardRef, useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Combobox, type ComboboxOption } from '../combobox/combobox';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useAgentRegistration } from '../../agent';\nimport { IT_PROVINCES } from './it-provinces';\nimport {\n provinceSelectAgent,\n type ProvinceSelectHandle,\n} from './province-select.agent';\n\n/* ------------------------------------------------------------------ */\n/* Public API */\n/* */\n/* A country-gated province/region picker built on Combobox. Italy is */\n/* the only country whose subdivisions the kit bundles (the 110 siglas, */\n/* transcribed from the platform's Provinces validation set). For every */\n/* other country the consumer injects `options`. The value is the */\n/* 2-letter sigla, UPPERCASED, matching `StructuredAddress.province`. */\n/* ------------------------------------------------------------------ */\n\nexport interface ProvinceSelectProps {\n /** Country whose subdivisions to show. `'it'` → built-in Italian provinces. */\n country?: string;\n /** Selected province — UPPERCASED (e.g. `'MI'`). */\n value?: string;\n defaultValue?: string;\n /** Fires with the new UPPERCASED code (or `''` when cleared). */\n onValueChange?: (code: string) => void;\n /**\n * Consumer-provided options for non-IT countries (or to override the\n * built-in Italian set). Option `value`s MUST already be UPPERCASED — they\n * are stored and emitted uppercased, so a lowercase value won't round-trip\n * (the display breaks on the next render).\n */\n options?: ComboboxOption[];\n placeholder?: string;\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. REQUIRED inside a `<FormField>` (see CountrySelect); set\n * it to the visible label text (e.g. `\"Province\"`).\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 ProvinceSelect = forwardRef<HTMLInputElement, ProvinceSelectProps>(\n function ProvinceSelect(\n {\n country,\n value: valueProp,\n defaultValue,\n onValueChange,\n options,\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();\n\n const [value, setValue] = useControllableState<string>({\n value: valueProp === undefined ? undefined : valueProp.toUpperCase(),\n defaultValue: defaultValue?.toUpperCase(),\n onChange: onValueChange,\n });\n\n const resolvedOptions = useMemo<ComboboxOption[]>(() => {\n if (options) return options;\n if (country?.toLowerCase() === 'it') {\n return IT_PROVINCES.map((p) => ({\n value: p.code,\n label: `${p.name} (${p.code})`,\n }));\n }\n return [];\n }, [options, country]);\n\n const handleChange = useCallback(\n (next: string) => setValue(next.toUpperCase()),\n [setValue],\n );\n\n const valueRef = useRef(value);\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n const agentHandle = useMemo<ProvinceSelectHandle>(\n () => ({\n getValue: () => valueRef.current || null,\n setValue: (next) => setValue((next ?? '').toUpperCase()),\n clear: () => setValue(''),\n }),\n [setValue],\n );\n useAgentRegistration(provinceSelectAgent, agentHandle, id);\n\n return (\n <div\n data-component=\"province-select\"\n data-component-id={id}\n className={['ds:w-full', className].filter(Boolean).join(' ')}\n >\n <Combobox\n ref={ref}\n options={resolvedOptions}\n value={value ?? ''}\n onValueChange={handleChange}\n placeholder={\n placeholder ??\n t('inputs.provinceSelect.placeholder', 'Search provinces')\n }\n emptyMessage={t(\n 'inputs.provinceSelect.empty',\n 'No provinces available',\n )}\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 autoComplete=\"address-level1\"\n aria-label={ariaLabel}\n aria-invalid={ariaInvalid}\n aria-describedby={ariaDescribedBy}\n />\n </div>\n );\n },\n);\n\nProvinceSelect.displayName = 'ProvinceSelect';\n"],"names":["IT_PROVINCES","provinceSelectAgent","handle","args","ProvinceSelect","forwardRef","country","valueProp","defaultValue","onValueChange","options","placeholder","clearable","disabled","readOnly","required","name","id","size","tone","ariaLabel","ariaInvalid","ariaDescribedBy","className","ref","t","useTranslation","value","setValue","useControllableState","resolvedOptions","useMemo","p","handleChange","useCallback","next","valueRef","useRef","useEffect","agentHandle","useAgentRegistration","jsx","Combobox"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { jsx as t, jsxs as g } from "react/jsx-runtime";
2
- import { forwardRef as a, useContext as fe, useState as G, useRef as q, useMemo as ge } from "react";
1
+ import { jsx as t, jsxs as f } from "react/jsx-runtime";
2
+ import { forwardRef as i, useContext as fe, useState as q, useRef as L, useMemo as ge } from "react";
3
3
  import { u as he } from "./registry-DvAUVLHh.js";
4
4
  import * as o from "@radix-ui/react-select";
5
- import { c as I } from "./index-D2ZczOXr.js";
5
+ import { c as j } from "./index-D2ZczOXr.js";
6
6
  import { useTranslation as ve } from "react-i18next";
7
7
  import { u as be, F as ye } from "./form-field-context-B3APVHKx.js";
8
8
  import { g as Se } from "./group-options-BvKhQ3xb.js";
9
9
  import { C as xe } from "./chevron-up-umRGgtJA.js";
10
- import { C as L } from "./chevron-down-DWE7GSq9.js";
10
+ import { C as $ } from "./chevron-down-DWE7GSq9.js";
11
11
  import { C as Ne } from "./check-DrFSN__t.js";
12
12
  import { u as we } from "./use-direction-Dp8h70PP.js";
13
13
  import { X as Ce } from "./x-B5YnXwCz.js";
@@ -95,7 +95,7 @@ const ze = {
95
95
  description: "Stable opaque option value emitted on each rendered option."
96
96
  }
97
97
  }
98
- }, $ = I(
98
+ }, A = j(
99
99
  [
100
100
  "ds:group ds:inline-flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:w-full",
101
101
  "ds:rounded-[var(--radius-sm)] ds:border ds:border-border ds:bg-input",
@@ -125,7 +125,7 @@ const ze = {
125
125
  tone: "default"
126
126
  }
127
127
  }
128
- ), Ie = I(
128
+ ), Ie = j(
129
129
  [
130
130
  "ds:z-[var(--z-dropdown)] ds:overflow-hidden",
131
131
  "ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-background ds:text-foreground",
@@ -137,7 +137,7 @@ const ze = {
137
137
  "ds:data-[side=top]:slide-in-from-bottom-2",
138
138
  "ds:motion-reduce:animate-none"
139
139
  ].join(" ")
140
- ), je = I(
140
+ ), je = j(
141
141
  [
142
142
  "ds:relative ds:flex ds:cursor-pointer ds:items-center",
143
143
  "ds:rounded-[var(--radius-sm)]",
@@ -157,11 +157,11 @@ const ze = {
157
157
  size: "md"
158
158
  }
159
159
  }
160
- ), Ve = [
160
+ ), ke = [
161
161
  "ds:ps-8 ds:pe-3 ds:py-1.5",
162
162
  "type-eyebrow ds:text-muted-foreground",
163
163
  "ds:sticky ds:top-0 ds:bg-background"
164
- ].join(" "), ke = {
164
+ ].join(" "), Ve = {
165
165
  sm: "ds:size-3.5",
166
166
  md: "ds:size-4",
167
167
  lg: "ds:size-5"
@@ -176,23 +176,23 @@ function Re(...e) {
176
176
  n && (typeof n == "function" ? n(s) : n.current = s);
177
177
  };
178
178
  }
179
- const A = (e) => /* @__PURE__ */ t(o.Root, { ...e });
180
- A.displayName = "Select.Root";
181
- const _ = a(
179
+ const _ = (e) => /* @__PURE__ */ t(o.Root, { ...e });
180
+ _.displayName = "Select.Root";
181
+ const H = i(
182
182
  ({ size: e, tone: s, className: n, children: r, ...l }, c) => /* @__PURE__ */ t(
183
183
  o.Trigger,
184
184
  {
185
185
  ref: c,
186
- className: $({ size: e, tone: s, className: n }),
186
+ className: A({ size: e, tone: s, className: n }),
187
187
  ...l,
188
188
  children: r
189
189
  }
190
190
  )
191
191
  );
192
- _.displayName = "Select.Trigger";
193
- const H = a((e, s) => /* @__PURE__ */ t(o.Value, { ref: s, ...e }));
194
- H.displayName = "Select.Value";
195
- const j = a(
192
+ H.displayName = "Select.Trigger";
193
+ const M = i((e, s) => /* @__PURE__ */ t(o.Value, { ref: s, ...e }));
194
+ M.displayName = "Select.Value";
195
+ const k = i(
196
196
  ({
197
197
  className: e,
198
198
  children: s,
@@ -200,7 +200,7 @@ const j = a(
200
200
  sideOffset: r = 4,
201
201
  container: l,
202
202
  ...c
203
- }, h) => /* @__PURE__ */ t(o.Portal, { container: l ?? void 0, children: /* @__PURE__ */ g(
203
+ }, h) => /* @__PURE__ */ t(o.Portal, { container: l ?? void 0, children: /* @__PURE__ */ f(
204
204
  o.Content,
205
205
  {
206
206
  ref: h,
@@ -212,13 +212,13 @@ const j = a(
212
212
  children: [
213
213
  /* @__PURE__ */ t(o.ScrollUpButton, { className: "ds:flex ds:items-center ds:justify-center ds:h-6 ds:bg-background ds:cursor-default", children: /* @__PURE__ */ t(xe, { "aria-hidden": "true", className: "ds:size-4" }) }),
214
214
  s,
215
- /* @__PURE__ */ t(o.ScrollDownButton, { className: "ds:flex ds:items-center ds:justify-center ds:h-6 ds:bg-background ds:cursor-default", children: /* @__PURE__ */ t(L, { "aria-hidden": "true", className: "ds:size-4" }) })
215
+ /* @__PURE__ */ t(o.ScrollDownButton, { className: "ds:flex ds:items-center ds:justify-center ds:h-6 ds:bg-background ds:cursor-default", children: /* @__PURE__ */ t($, { "aria-hidden": "true", className: "ds:size-4" }) })
216
216
  ]
217
217
  }
218
218
  ) })
219
219
  );
220
- j.displayName = "Select.Content";
221
- const V = a(({ className: e, ...s }, n) => /* @__PURE__ */ t(
220
+ k.displayName = "Select.Content";
221
+ const V = i(({ className: e, ...s }, n) => /* @__PURE__ */ t(
222
222
  o.Viewport,
223
223
  {
224
224
  ref: n,
@@ -227,54 +227,82 @@ const V = a(({ className: e, ...s }, n) => /* @__PURE__ */ t(
227
227
  }
228
228
  ));
229
229
  V.displayName = "Select.Viewport";
230
- const k = a(({ size: e = "md", className: s, children: n, startAdornment: r, ...l }, c) => {
231
- const h = Te[e ?? "md"], S = ke[e ?? "md"];
232
- return /* @__PURE__ */ g(
233
- o.Item,
234
- {
235
- ref: c,
236
- className: je({ size: e, className: s }),
237
- ...l,
238
- children: [
239
- /* @__PURE__ */ t(
240
- "span",
241
- {
242
- className: `ds:absolute ${h} ds:inline-flex ds:items-center ds:justify-center`,
243
- "aria-hidden": "true",
244
- children: /* @__PURE__ */ t(o.ItemIndicator, { children: /* @__PURE__ */ t(Ne, { className: S }) })
245
- }
246
- ),
247
- r ? (
248
- // Decorative by contract — accessible name comes from the item text.
230
+ const T = i(
231
+ ({ size: e = "md", className: s, children: n, startAdornment: r, endContent: l, ...c }, h) => {
232
+ const S = Te[e ?? "md"], x = Ve[e ?? "md"];
233
+ return /* @__PURE__ */ f(
234
+ o.Item,
235
+ {
236
+ ref: h,
237
+ className: je({ size: e, className: s }),
238
+ ...c,
239
+ children: [
249
240
  /* @__PURE__ */ t(
250
241
  "span",
251
242
  {
243
+ className: `ds:absolute ${S} ds:inline-flex ds:items-center ds:justify-center`,
252
244
  "aria-hidden": "true",
253
- className: "ds:inline-flex ds:items-center ds:shrink-0 ds:me-[var(--spacing-xs)]",
254
- children: r
245
+ children: /* @__PURE__ */ t(o.ItemIndicator, { children: /* @__PURE__ */ t(Ne, { className: x }) })
255
246
  }
256
- )
257
- ) : null,
258
- /* @__PURE__ */ t(o.ItemText, { children: n })
259
- ]
260
- }
261
- );
262
- });
263
- k.displayName = "Select.Item";
264
- const M = a((e, s) => /* @__PURE__ */ t(o.ItemText, { ref: s, ...e }));
265
- M.displayName = "Select.ItemText";
266
- const U = a((e, s) => /* @__PURE__ */ t(o.Group, { ref: s, ...e }));
267
- U.displayName = "Select.Group";
268
- const T = a(({ className: e, ...s }, n) => /* @__PURE__ */ t(
247
+ ),
248
+ r ? (
249
+ // Decorative by contract accessible name comes from the item text.
250
+ /* @__PURE__ */ t(
251
+ "span",
252
+ {
253
+ "aria-hidden": "true",
254
+ className: "ds:inline-flex ds:items-center ds:shrink-0 ds:me-[var(--spacing-xs)]",
255
+ children: r
256
+ }
257
+ )
258
+ ) : null,
259
+ l ? (
260
+ // Radix points the item's `aria-labelledby` at `ItemText`, so
261
+ // anything rendered outside it is dropped from the accessible
262
+ // name — a price there would be visible but never announced.
263
+ // It therefore goes INSIDE `ItemText`, wrapped in a flex row so
264
+ // `ms-auto` still pins it to the inline-end (and flips in RTL).
265
+ //
266
+ // The trade-off is deliberate: Radix mirrors `ItemText` into the
267
+ // closed trigger, so the selected item's trailing content shows
268
+ // there too. For the case this exists for — a price — that reads
269
+ // as a feature, not a leak. The wrapper is rendered ONLY when
270
+ // `endContent` is supplied, so every existing item keeps its
271
+ // previous DOM exactly.
272
+ //
273
+ // `asChild` is required, not stylistic. `SelectItemText`
274
+ // destructures `className` and `style` off its props and never
275
+ // applies them, so styling it directly is silently discarded.
276
+ // It must also GROW: as a plain flex item of the row it sizes to
277
+ // its content, leaving `ms-auto` no free space to absorb, and the
278
+ // chip would sit against the label instead of the row's end —
279
+ // the ragged column this change exists to remove. `asChild` makes
280
+ // our own span become the ItemText element, so `flex-1` lands.
281
+ /* @__PURE__ */ t(o.ItemText, { asChild: !0, children: /* @__PURE__ */ f("span", { className: "ds:flex ds:flex-1 ds:min-w-0 ds:items-center ds:gap-[var(--spacing-sm)]", children: [
282
+ /* @__PURE__ */ t("span", { className: "ds:min-w-0 ds:truncate", children: n }),
283
+ /* @__PURE__ */ t("span", { className: "ds:inline-flex ds:items-center ds:ms-auto ds:shrink-0", children: l })
284
+ ] }) })
285
+ ) : /* @__PURE__ */ t(o.ItemText, { children: n })
286
+ ]
287
+ }
288
+ );
289
+ }
290
+ );
291
+ T.displayName = "Select.Item";
292
+ const U = i((e, s) => /* @__PURE__ */ t(o.ItemText, { ref: s, ...e }));
293
+ U.displayName = "Select.ItemText";
294
+ const W = i((e, s) => /* @__PURE__ */ t(o.Group, { ref: s, ...e }));
295
+ W.displayName = "Select.Group";
296
+ const R = i(({ className: e, ...s }, n) => /* @__PURE__ */ t(
269
297
  o.Label,
270
298
  {
271
299
  ref: n,
272
- className: [Ve, e].filter(Boolean).join(" "),
300
+ className: [ke, e].filter(Boolean).join(" "),
273
301
  ...s
274
302
  }
275
303
  ));
276
- T.displayName = "Select.Label";
277
- const W = a(({ className: e, ...s }, n) => /* @__PURE__ */ t(
304
+ R.displayName = "Select.Label";
305
+ const E = i(({ className: e, ...s }, n) => /* @__PURE__ */ t(
278
306
  o.Separator,
279
307
  {
280
308
  ref: n,
@@ -282,8 +310,8 @@ const W = a(({ className: e, ...s }, n) => /* @__PURE__ */ t(
282
310
  ...s
283
311
  }
284
312
  ));
285
- W.displayName = "Select.Separator";
286
- const E = a(function({
313
+ E.displayName = "Select.Separator";
314
+ const X = i(function({
287
315
  options: s,
288
316
  value: n,
289
317
  defaultValue: r,
@@ -291,79 +319,79 @@ const E = a(function({
291
319
  placeholder: c,
292
320
  clearable: h = !1,
293
321
  disabled: S,
294
- required: X,
322
+ required: x,
295
323
  name: J,
296
- id: x,
297
- size: R = "md",
324
+ id: N,
325
+ size: B = "md",
298
326
  tone: Q = "default",
299
327
  className: Y,
300
328
  container: Z,
301
- "aria-label": B
329
+ "aria-label": O
302
330
  }, ee) {
303
- const { t: N } = ve(), u = be(), p = fe(ye) !== null, [te, b] = G(
331
+ const { t: w } = ve(), u = be(), p = fe(ye) !== null, [te, b] = q(
304
332
  n ?? r ?? ""
305
- ), m = n !== void 0, v = m ? n : te, [w, C] = G(!1), O = q(v);
306
- O.current = v;
307
- const se = x ?? (p ? u.id : void 0), D = (p ? u.disabled : !1) || !!S, oe = (p ? u.required : !1) || !!X, F = p ? u.invalid : !1, ne = F ? "error" : Q, ie = p && u.describedBy ? u.describedBy : void 0, z = q(null), de = Re(ee, z), ae = we(z), d = l, re = (i) => {
308
- m || b(i), d == null || d(i);
309
- }, le = (i) => {
333
+ ), g = n !== void 0, v = g ? n : te, [C, z] = q(!1), D = L(v);
334
+ D.current = v;
335
+ const se = N ?? (p ? u.id : void 0), F = (p ? u.disabled : !1) || !!S, oe = (p ? u.required : !1) || !!x, K = p ? u.invalid : !1, ne = K ? "error" : Q, de = p && u.describedBy ? u.describedBy : void 0, I = L(null), ae = Re(ee, I), ie = we(I), a = l, re = (d) => {
336
+ g || b(d), a == null || a(d);
337
+ }, le = (d) => {
310
338
  var y;
311
- i.preventDefault(), i.stopPropagation(), m || b(""), d == null || d(""), (y = z.current) == null || y.focus();
312
- }, K = c ?? N("inputs.select.placeholder", "Select…"), ce = h && !!v && !D, ue = Se(s), pe = ge(
339
+ d.preventDefault(), d.stopPropagation(), g || b(""), a == null || a(""), (y = I.current) == null || y.focus();
340
+ }, P = c ?? w("inputs.select.placeholder", "Select…"), ce = h && !!v && !F, ue = Se(s), pe = ge(
313
341
  () => ({
314
- getValue: () => O.current,
315
- setValue: (i) => {
316
- m || b(i), d == null || d(i);
342
+ getValue: () => D.current,
343
+ setValue: (d) => {
344
+ g || b(d), a == null || a(d);
317
345
  },
318
346
  clear: () => {
319
- m || b(""), d == null || d("");
347
+ g || b(""), a == null || a("");
320
348
  },
321
- open: () => C(!0),
322
- close: () => C(!1),
323
- isOpen: () => w
349
+ open: () => z(!0),
350
+ close: () => z(!1),
351
+ isOpen: () => C
324
352
  }),
325
- [d, m, w]
353
+ [a, g, C]
326
354
  );
327
- return he(ze, pe, x), /* @__PURE__ */ g(
355
+ return he(ze, pe, N), /* @__PURE__ */ f(
328
356
  o.Root,
329
357
  {
330
358
  value: v === "" ? void 0 : v,
331
359
  onValueChange: re,
332
- open: w,
333
- onOpenChange: C,
334
- disabled: D,
360
+ open: C,
361
+ onOpenChange: z,
362
+ disabled: F,
335
363
  required: oe,
336
364
  name: J,
337
- dir: ae,
365
+ dir: ie,
338
366
  children: [
339
- /* @__PURE__ */ g(
367
+ /* @__PURE__ */ f(
340
368
  o.Trigger,
341
369
  {
342
- ref: de,
370
+ ref: ae,
343
371
  id: se,
344
- "aria-label": B ?? (p ? void 0 : K),
345
- "aria-labelledby": !B && p ? `${u.id}-label` : void 0,
346
- "aria-describedby": ie,
347
- "aria-invalid": F || void 0,
372
+ "aria-label": O ?? (p ? void 0 : P),
373
+ "aria-labelledby": !O && p ? `${u.id}-label` : void 0,
374
+ "aria-describedby": de,
375
+ "aria-invalid": K || void 0,
348
376
  "data-component": "select",
349
- "data-component-id": x,
350
- className: $({
351
- size: R,
377
+ "data-component-id": N,
378
+ className: A({
379
+ size: B,
352
380
  tone: ne,
353
381
  className: Y
354
382
  }),
355
383
  children: [
356
- /* @__PURE__ */ t("span", { className: "ds:min-w-0 ds:truncate ds:text-start", children: /* @__PURE__ */ t(o.Value, { placeholder: K }) }),
357
- /* @__PURE__ */ g("span", { className: "ds:ms-auto ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
384
+ /* @__PURE__ */ t("span", { className: "ds:min-w-0 ds:truncate ds:text-start", children: /* @__PURE__ */ t(o.Value, { placeholder: P }) }),
385
+ /* @__PURE__ */ f("span", { className: "ds:ms-auto ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
358
386
  ce ? /* @__PURE__ */ t(
359
387
  "button",
360
388
  {
361
389
  type: "button",
362
- "aria-label": N("inputs.select.clear", "Clear selection"),
390
+ "aria-label": w("inputs.select.clear", "Clear selection"),
363
391
  onClick: le,
364
- onPointerDown: (i) => i.stopPropagation(),
365
- onKeyDown: (i) => {
366
- (i.key === "Enter" || i.key === " ") && i.stopPropagation();
392
+ onPointerDown: (d) => d.stopPropagation(),
393
+ onKeyDown: (d) => {
394
+ (d.key === "Enter" || d.key === " ") && d.stopPropagation();
367
395
  },
368
396
  className: [
369
397
  "ds:inline-flex ds:items-center ds:justify-center ds:rounded-[var(--radius-sm)]",
@@ -377,7 +405,7 @@ const E = a(function({
377
405
  }
378
406
  ) : null,
379
407
  /* @__PURE__ */ t(o.Icon, { asChild: !0, children: /* @__PURE__ */ t(
380
- L,
408
+ $,
381
409
  {
382
410
  "aria-hidden": "true",
383
411
  className: [
@@ -391,52 +419,53 @@ const E = a(function({
391
419
  ]
392
420
  }
393
421
  ),
394
- /* @__PURE__ */ t(j, { container: Z, children: /* @__PURE__ */ t(V, { children: s.length === 0 ? /* @__PURE__ */ t("div", { className: "ds:ps-8 ds:pe-3 ds:py-2 type-body-sm ds:text-muted-foreground", children: N("inputs.select.noOptions", "No options") }) : ue.map(({ group: i, items: y }, me) => {
395
- const P = y.map((f) => /* @__PURE__ */ t(
396
- k,
422
+ /* @__PURE__ */ t(k, { container: Z, children: /* @__PURE__ */ t(V, { children: s.length === 0 ? /* @__PURE__ */ t("div", { className: "ds:ps-8 ds:pe-3 ds:py-2 type-body-sm ds:text-muted-foreground", children: w("inputs.select.noOptions", "No options") }) : ue.map(({ group: d, items: y }, me) => {
423
+ const G = y.map((m) => /* @__PURE__ */ t(
424
+ T,
397
425
  {
398
- value: f.value,
399
- disabled: f.disabled,
400
- size: R,
401
- "data-option-id": f.value,
402
- startAdornment: f.startAdornment,
403
- children: f.label
426
+ value: m.value,
427
+ disabled: m.disabled,
428
+ size: B,
429
+ "data-option-id": m.value,
430
+ startAdornment: m.startAdornment,
431
+ endContent: m.endContent,
432
+ children: m.label
404
433
  },
405
- f.value
434
+ m.value
406
435
  ));
407
- return i ? /* @__PURE__ */ g(o.Group, { children: [
408
- /* @__PURE__ */ t(T, { children: i }),
409
- P
410
- ] }, `group-${i}`) : /* @__PURE__ */ t(o.Group, { children: P }, `group-${me}`);
436
+ return d ? /* @__PURE__ */ f(o.Group, { children: [
437
+ /* @__PURE__ */ t(R, { children: d }),
438
+ G
439
+ ] }, `group-${d}`) : /* @__PURE__ */ t(o.Group, { children: G }, `group-${me}`);
411
440
  }) }) })
412
441
  ]
413
442
  }
414
443
  );
415
444
  });
416
- E.displayName = "Select";
417
- const Be = Object.assign(E, {
418
- Root: A,
419
- Trigger: _,
420
- Value: H,
421
- Content: j,
445
+ X.displayName = "Select";
446
+ const Be = Object.assign(X, {
447
+ Root: _,
448
+ Trigger: H,
449
+ Value: M,
450
+ Content: k,
422
451
  Viewport: V,
423
- Item: k,
424
- ItemText: M,
425
- Group: U,
426
- Label: T,
427
- Separator: W
452
+ Item: T,
453
+ ItemText: U,
454
+ Group: W,
455
+ Label: R,
456
+ Separator: E
428
457
  }), Me = Be;
429
458
  export {
430
459
  Me as S,
431
- j as a,
432
- U as b,
433
- k as c,
434
- M as d,
435
- T as e,
436
- A as f,
437
- W as g,
438
- _ as h,
439
- H as i,
460
+ k as a,
461
+ W as b,
462
+ T as c,
463
+ U as d,
464
+ R as e,
465
+ _ as f,
466
+ E as g,
467
+ H as h,
468
+ M as i,
440
469
  V as j
441
470
  };
442
- //# sourceMappingURL=select-BW5ecXlX.js.map
471
+ //# sourceMappingURL=select-Bi8zril7.js.map