@accelint/design-system 0.4.0 → 0.5.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 (130) hide show
  1. package/README.md +12 -12
  2. package/dist/components/aria/aria.js.map +1 -1
  3. package/dist/components/button/button.d.ts +1 -1
  4. package/dist/components/button/button.js +1 -1
  5. package/dist/components/button/button.js.map +1 -1
  6. package/dist/components/button/types.d.ts +1 -1
  7. package/dist/components/checkbox/checkbox.d.ts +1 -1
  8. package/dist/components/checkbox/checkbox.js.map +1 -1
  9. package/dist/components/chip/chip.d.ts +1 -1
  10. package/dist/components/chip/chip.js.map +1 -1
  11. package/dist/components/chip/types.d.ts +1 -1
  12. package/dist/components/collection/collection.js.map +1 -1
  13. package/dist/components/combo-box/combo-box.d.ts +1 -1
  14. package/dist/components/combo-box/combo-box.js.map +1 -1
  15. package/dist/components/combo-box/types.d.ts +1 -1
  16. package/dist/components/dialog/dialog.d.ts +1 -1
  17. package/dist/components/dialog/dialog.js.map +1 -1
  18. package/dist/components/dialog/types.d.ts +1 -1
  19. package/dist/components/drawer/drawer.d.ts +1 -1
  20. package/dist/components/drawer/drawer.js +4 -3
  21. package/dist/components/drawer/drawer.js.map +1 -1
  22. package/dist/components/drawer/types.d.ts +2 -2
  23. package/dist/components/element/element.js.map +1 -1
  24. package/dist/components/group/group.d.ts +1 -1
  25. package/dist/components/group/group.js.map +1 -1
  26. package/dist/components/group/types.d.ts +1 -1
  27. package/dist/components/icon/icon.d.ts +1 -1
  28. package/dist/components/icon/types.d.ts +1 -1
  29. package/dist/components/input/input.css.d.ts +1 -1
  30. package/dist/components/input/input.d.ts +4 -4
  31. package/dist/components/input/input.js +3 -3
  32. package/dist/components/input/input.js.map +1 -1
  33. package/dist/components/input/types.d.ts +1 -1
  34. package/dist/components/menu/index.d.ts +1 -1
  35. package/dist/components/menu/menu.css.d.ts +1 -1
  36. package/dist/components/menu/menu.d.ts +2 -2
  37. package/dist/components/menu/menu.js.map +1 -1
  38. package/dist/components/menu/types.d.ts +2 -2
  39. package/dist/components/merge-provider/merge-provider.js +2 -2
  40. package/dist/components/merge-provider/merge-provider.js.map +1 -1
  41. package/dist/components/number-field/number-field.d.ts +1 -1
  42. package/dist/components/number-field/types.d.ts +1 -1
  43. package/dist/components/options/index.d.ts +1 -1
  44. package/dist/components/options/options.css.d.ts +1 -1
  45. package/dist/components/options/options.d.ts +2 -2
  46. package/dist/components/options/options.js.map +1 -1
  47. package/dist/components/options/types.d.ts +2 -2
  48. package/dist/components/picker/picker.d.ts +1 -1
  49. package/dist/components/picker/picker.js +2 -2
  50. package/dist/components/picker/picker.js.map +1 -1
  51. package/dist/components/picker/types.d.ts +1 -1
  52. package/dist/components/popover/popover.d.ts +1 -1
  53. package/dist/components/popover/popover.js +2 -2
  54. package/dist/components/popover/popover.js.map +1 -1
  55. package/dist/components/query-builder/dataset-sample.js +8 -24
  56. package/dist/components/query-builder/dataset-sample.js.map +1 -1
  57. package/dist/components/query-builder/group.js +1 -1
  58. package/dist/components/query-builder/group.js.map +1 -1
  59. package/dist/components/query-builder/query-builder.js +2 -2
  60. package/dist/components/query-builder/query-builder.js.map +1 -1
  61. package/dist/components/query-builder/rule.js.map +1 -1
  62. package/dist/components/query-builder/types.d.ts +3 -3
  63. package/dist/components/query-builder/utils.d.ts +1 -1
  64. package/dist/components/query-builder/utils.js.map +1 -1
  65. package/dist/components/query-builder/value-editor.js +1 -1
  66. package/dist/components/query-builder/value-editor.js.map +1 -1
  67. package/dist/components/query-builder/value-selector.js.map +1 -1
  68. package/dist/components/radio/radio.d.ts +1 -1
  69. package/dist/components/radio/radio.js.map +1 -1
  70. package/dist/components/radio/types.d.ts +1 -1
  71. package/dist/components/search-field/index.d.ts +1 -1
  72. package/dist/components/search-field/search-field.d.ts +1 -1
  73. package/dist/components/search-field/types.d.ts +1 -1
  74. package/dist/components/select/select.d.ts +1 -1
  75. package/dist/components/select/select.js.map +1 -1
  76. package/dist/components/switch/switch.d.ts +1 -1
  77. package/dist/components/tabs/tabs.css.d.ts +2 -2
  78. package/dist/components/tabs/tabs.d.ts +1 -1
  79. package/dist/components/tabs/tabs.js +2 -2
  80. package/dist/components/tabs/tabs.js.map +1 -1
  81. package/dist/components/tabs/types.d.ts +3 -3
  82. package/dist/components/text-field/text-field.d.ts +5 -4
  83. package/dist/components/text-field/types.d.ts +1 -1
  84. package/dist/components/textarea/textarea.css.d.ts +1 -1
  85. package/dist/components/textarea/textarea.d.ts +4 -4
  86. package/dist/components/textarea/textarea.js +5 -5
  87. package/dist/components/textarea/textarea.js.map +1 -1
  88. package/dist/components/textarea/types.d.ts +2 -2
  89. package/dist/components/tooltip/tooltip.d.ts +1 -1
  90. package/dist/components/tooltip/tooltip.js +3 -3
  91. package/dist/components/tooltip/tooltip.js.map +1 -1
  92. package/dist/components/tree/tree.css.d.ts +1 -0
  93. package/dist/components/tree/tree.css.js +2 -2
  94. package/dist/components/tree/tree.css.js.map +1 -1
  95. package/dist/components/tree/tree.d.ts +1 -1
  96. package/dist/components/tree/tree.js +5 -2
  97. package/dist/components/tree/tree.js.map +1 -1
  98. package/dist/components/tree/types.d.ts +4 -4
  99. package/dist/components/tree/utils.js.map +1 -1
  100. package/dist/hooks/use-collection-render/use-collection-render.js +1 -0
  101. package/dist/hooks/use-collection-render/use-collection-render.js.map +1 -1
  102. package/dist/hooks/use-defaults/use-defaults.d.ts +1 -1
  103. package/dist/hooks/use-slot/use-slot.js +3 -3
  104. package/dist/hooks/use-slot/use-slot.js.map +1 -1
  105. package/dist/hooks/use-theme/types.d.ts +1 -1
  106. package/dist/hooks/use-theme/use-theme.d.ts +18 -1
  107. package/dist/hooks/use-theme/use-theme.js.map +1 -1
  108. package/dist/hooks/use-tree/index.d.ts +1 -1
  109. package/dist/hooks/use-tree/use-tree.d.ts +1 -1
  110. package/dist/hooks/use-tree/use-tree.js +10 -5
  111. package/dist/hooks/use-tree/use-tree.js.map +1 -1
  112. package/dist/hooks/use-tree/utils.d.ts +1 -1
  113. package/dist/hooks/use-tree/utils.js +3 -4
  114. package/dist/hooks/use-tree/utils.js.map +1 -1
  115. package/dist/index.css +34 -31
  116. package/dist/ladle/actions.js.map +1 -1
  117. package/dist/test/setup.js +347 -331
  118. package/dist/test/setup.js.map +1 -1
  119. package/dist/types/index.d.ts +1 -1
  120. package/dist/types/react-aria.d.ts +1 -1
  121. package/dist/types/react.d.d.ts +16 -0
  122. package/dist/types/use-tree.d.ts +2 -1
  123. package/dist/utils/css.d.ts +2 -2
  124. package/dist/utils/css.js +5 -5
  125. package/dist/utils/css.js.map +1 -1
  126. package/dist/utils/props.js +5 -6
  127. package/dist/utils/props.js.map +1 -1
  128. package/dist/utils/validators.d.ts +2 -2
  129. package/dist/utils/validators.js.map +1 -1
  130. package/package.json +60 -57
@@ -1,6 +1,6 @@
1
1
  import { Orientation } from '@react-types/shared';
2
- import { ReactElement, ComponentType } from 'react';
3
- import { ValueEditorProps, RuleGroupProps, useRuleGroup, ActionProps as ActionProps$1, QueryBuilderProps as QueryBuilderProps$1, RuleGroupType, FullField, FullOperator, FullCombinator } from 'react-querybuilder';
2
+ import { ComponentType, ReactElement } from 'react';
3
+ import { QueryBuilderProps as QueryBuilderProps$1, RuleGroupType, FullField, FullOperator, FullCombinator, RuleGroupProps, useRuleGroup, ValueEditorProps, ActionProps as ActionProps$1 } from 'react-querybuilder';
4
4
  import { PartialDeep, LiteralUnion } from 'type-fest';
5
5
  import { AsType } from '../../types/generic.js';
6
6
  import { OmitProtectedProps } from '../../types/props.js';
@@ -9,7 +9,7 @@ import { ButtonClassNames, ButtonProps } from '../button/types.js';
9
9
  import { CheckboxClassNames, CheckboxRenderProps } from '../checkbox/types.js';
10
10
  import { InputClassNames, InputProps } from '../input/types.js';
11
11
  import { RadioClassNames } from '../radio/types.js';
12
- import { SelectClassNames, SelectProps, SelectRenderProps } from '../select/types.js';
12
+ import { SelectClassNames, SelectRenderProps, SelectProps } from '../select/types.js';
13
13
  import { SwitchClassNames } from '../switch/types.js';
14
14
  import { TextAreaClassNames, TextAreaProps } from '../textarea/types.js';
15
15
  import 'react-aria-components';
@@ -3,7 +3,7 @@ import { MouseEvent } from 'react';
3
3
  import { RuleType, RuleValidator, ValidationResult } from 'react-querybuilder';
4
4
 
5
5
  /**
6
- * This is required because the C2DS Button supports an onPress event but
6
+ * This is required because the design system Button supports an onPress event but
7
7
  * QueryBuilder provides a callback that expects a MouseEvent and will error
8
8
  * out if preventDefault is not available as a method.
9
9
  * @param event
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/query-builder/utils.ts"],"names":[],"mappings":";;;AAea,IAAA,iBAAA,GAAoB,CAAC,KAC/B,MAAA;AAAA,EACC,GAAG,KAAA;AAAA,EACH,cAAgB,EAAA,IAAA;AAAA,EAChB,eAAiB,EAAA;AACnB,CAAA;AAoBW,IAAA,mBAAA,GAAsB,CACjC,IAAA,EACA,SACqB,KAAA;AACrB,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAO,OAAA,EAAE,OAAO,IAAK,EAAA;AAAA;AAGvB,EAAM,MAAA,MAAA,GAAS,UAAU,IAAI,CAAA;AAE7B,EAAI,IAAA,OAAO,WAAW,SAAW,EAAA;AAC/B,IAAO,OAAA,EAAE,OAAO,MAAO,EAAA;AAAA;AAGzB,EAAO,OAAA;AAAA,IACL,OAAO,MAAO,CAAA,KAAA;AAAA,IACd,OAAS,EAAA,MAAA,CAAO,KAAQ,GAAA,KAAK,MAAO,CAAA;AAAA,GACtC;AACF","file":"utils.js","sourcesContent":["import { noop } from '@accelint/core';\nimport type { PressEvent } from '@react-types/shared';\nimport type { MouseEvent } from 'react';\nimport type {\n RuleType,\n RuleValidator,\n ValidationResult,\n} from 'react-querybuilder';\n\n/**\n * This is required because the C2DS Button supports an onPress event but\n * QueryBuilder provides a callback that expects a MouseEvent and will error\n * out if preventDefault is not available as a method.\n * @param event\n */\nexport const pressToMouseEvent = (event: PressEvent) =>\n ({\n ...event,\n preventDefault: noop,\n stopPropagation: noop,\n }) as unknown as MouseEvent;\n\n/**\n * Validates according to the validator function\n *\n * For single-value rules (e.g. 5 is a number), validator function should provide a single conditional\n * const singleValidator = z.string().min(1);\n *\n * For multi-value rules (e.g. using operators such as \"between\" or \"during), validator func can optionally\n * be a union conditional https://zod.dev/?id=unions to allow validation against either a single value or multiple.\n * Right and left validators in the tuple do not need to be the same.\n *\n * const multiValidator = z.union([\n * singleValidator,\n * z.tuple([singleValidator, singleValidator])\n * ])\n *\n * @param rule\n * @param validator\n */\nexport const getValidationResult = (\n rule: RuleType,\n validator?: RuleValidator,\n): ValidationResult => {\n if (!validator) {\n return { valid: true };\n }\n\n const result = validator(rule);\n\n if (typeof result === 'boolean') {\n return { valid: result };\n }\n\n return {\n valid: result.valid,\n reasons: result.valid ? [] : result.reasons,\n };\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/query-builder/utils.ts"],"names":[],"mappings":";;;AA2Ba,IAAA,iBAAA,GAAoB,CAAC,KAC/B,MAAA;AAAA,EACC,GAAG,KAAA;AAAA,EACH,cAAgB,EAAA,IAAA;AAAA,EAChB,eAAiB,EAAA;AACnB,CAAA;AAoBW,IAAA,mBAAA,GAAsB,CACjC,IAAA,EACA,SACqB,KAAA;AACrB,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAO,OAAA,EAAE,OAAO,IAAK,EAAA;AAAA;AAGvB,EAAM,MAAA,MAAA,GAAS,UAAU,IAAI,CAAA;AAE7B,EAAI,IAAA,OAAO,WAAW,SAAW,EAAA;AAC/B,IAAO,OAAA,EAAE,OAAO,MAAO,EAAA;AAAA;AAGzB,EAAO,OAAA;AAAA,IACL,OAAO,MAAO,CAAA,KAAA;AAAA,IACd,OAAS,EAAA,MAAA,CAAO,KAAQ,GAAA,KAAK,MAAO,CAAA;AAAA,GACtC;AACF","file":"utils.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { noop } from '@accelint/core';\nimport type { PressEvent } from '@react-types/shared';\nimport type { MouseEvent } from 'react';\nimport type {\n RuleType,\n RuleValidator,\n ValidationResult,\n} from 'react-querybuilder';\n\n/**\n * This is required because the design system Button supports an onPress event but\n * QueryBuilder provides a callback that expects a MouseEvent and will error\n * out if preventDefault is not available as a method.\n * @param event\n */\nexport const pressToMouseEvent = (event: PressEvent) =>\n ({\n ...event,\n preventDefault: noop,\n stopPropagation: noop,\n }) as unknown as MouseEvent;\n\n/**\n * Validates according to the validator function\n *\n * For single-value rules (e.g. 5 is a number), validator function should provide a single conditional\n * const singleValidator = z.string().min(1);\n *\n * For multi-value rules (e.g. using operators such as \"between\" or \"during), validator func can optionally\n * be a union conditional https://zod.dev/?id=unions to allow validation against either a single value or multiple.\n * Right and left validators in the tuple do not need to be the same.\n *\n * const multiValidator = z.union([\n * singleValidator,\n * z.tuple([singleValidator, singleValidator])\n * ])\n *\n * @param rule\n * @param validator\n */\nexport const getValidationResult = (\n rule: RuleType,\n validator?: RuleValidator,\n): ValidationResult => {\n if (!validator) {\n return { valid: true };\n }\n\n const result = validator(rule);\n\n if (typeof result === 'boolean') {\n return { valid: result };\n }\n\n return {\n valid: result.valid,\n reasons: result.valid ? [] : result.reasons,\n };\n};\n"]}
@@ -195,7 +195,7 @@ function ValueEditor(props) {
195
195
  ...props,
196
196
  rule: rule(index),
197
197
  value: valueAsArray[index],
198
- handleOnChange: !index ? handleRangeStartChange : handleRangeEndChange
198
+ handleOnChange: index ? handleRangeEndChange : handleRangeStartChange
199
199
  }
200
200
  ) }, `${id}-${term}`)) });
201
201
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/query-builder/value-editor.tsx"],"names":[],"mappings":";;;;;;;;;;;;;AAiBA,SAAS,mBAAoB,CAAA;AAAA,EAC3B,QAAA;AAAA,EACA,SAAA,EAAW,EAAE,IAAA,EAAM,SAAU,EAAA;AAAA,EAC7B,cAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAqB,EAAA;AACnB,EAAA,MAAM,EAAE,KAAA,EAAU,GAAA,UAAA,CAAW,mBAAmB,CAAA;AAChD,EAAA,MAAM,EAAE,KAAA,EAAU,GAAA,mBAAA,CAAoB,MAAM,SAAS,CAAA;AAErD,EACE,uBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA,QAAA;AAAA,MACZ,UAAY,EAAA,KAAA;AAAA,MACZ,QAAU,EAAA,cAAA;AAAA,MACV,gBAAc,CAAC,KAAA;AAAA,MACf,YAAY,EAAA,IAAA;AAAA,MAEX,QAAO,EAAA,KAAA,EAAA;AAAA;AAAA,GACV;AAEJ;AAEA,SAAS,qBAAsB,CAAA;AAAA,EAC7B,QAAA;AAAA,EACA,SAAA,EAAW,EAAE,IAAA,EAAM,SAAU,EAAA;AAAA,EAC7B,cAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAqB,EAAA;AACnB,EAAA,MAAM,EAAE,KAAA,EAAU,GAAA,mBAAA,CAAoB,MAAM,SAAS,CAAA;AAErD,EACE,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,UAAY,EAAA,QAAA;AAAA,MACZ,QAAU,EAAA,cAAA;AAAA,MACV,gBAAc,CAAC,KAAA;AAAA,MACf,YAAY,EAAA,IAAA;AAAA,MAEX,QAAQ,EAAA,MAAA,EAAA,GAAA,CAAI,CAAC,MAAA,qBACX,GAAA,CAAA,KAAA,EAAA,EAAwB,KAAO,EAAA,MAAA,CAAO,KACpC,EAAA,QAAA,EAAA,MAAA,CAAO,KADE,EAAA,EAAA,MAAA,CAAO,IAEnB,CACD;AAAA;AAAA,GACH;AAEJ;AAEA,IAAM,iBAA4B,EAAC;AAEnC,SAAS,iBAAkB,CAAA;AAAA,EACzB,QAAA;AAAA,EACA,SAAA,EAAW,EAAE,IAAA,EAAM,SAAU,EAAA;AAAA,EAC7B,cAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAS,GAAA,cAAA;AAAA,EACT,GAAG;AACL,CAAqB,EAAA;AACnB,EAAA,MAAM,EAAE,KAAA,EAAU,GAAA,mBAAA,CAAoB,MAAM,SAAS,CAAA;AAErD,EACE,uBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,QAAA;AAAA,MACA,UAAU,IAAS,KAAA,aAAA;AAAA,MACnB,OAAS,EAAA,MAAA;AAAA,MACT,KAAO,EAAA,IAAA;AAAA,MACP,YAAY,CAAC,KAAA;AAAA,MACb,KAAA;AAAA,MACA;AAAA;AAAA,GACF;AAEJ;AAEA,SAAS,iBAAkB,CAAA;AAAA,EACzB,QAAA;AAAA,EACA,SAAA,EAAW,EAAE,IAAA,EAAM,SAAU,EAAA;AAAA,EAC7B,cAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAqB,EAAA;AACnB,EAAA,MAAM,EAAE,KAAA,EAAU,GAAA,mBAAA,CAAoB,MAAM,SAAS,CAAA;AAErD,EACE,uBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA,QAAA;AAAA,MACZ,UAAA,EAAY,QAAQ,KAAK,CAAA;AAAA,MACzB,QAAU,EAAA,cAAA;AAAA,MACV,gBAAc,CAAC,KAAA;AAAA,MACf,YAAY,EAAA;AAAA;AAAA,GACd;AAEJ;AAEA,SAAS,eAAgB,CAAA;AAAA,EACvB,QAAA;AAAA,EACA,SAAW,EAAA,EAAE,IAAM,EAAA,WAAA,EAAa,SAAU,EAAA;AAAA,EAC1C,cAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAqB,EAAA;AACnB,EAAA,MAAM,EAAE,KAAA,EAAU,GAAA,mBAAA,CAAoB,MAAM,SAAS,CAAA;AAErD,EAAA,MAAM,YAAe,GAAA,WAAA;AAAA,IACnB,CAAC,KAAA,KACC,cAAe,CAAA,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,IACnC,CAAC,cAAc;AAAA,GACjB;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,QAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAO,SAA2B,IAAA,MAAA;AAAA,MAClC,KAAA;AAAA,MACA,QAAU,EAAA,YAAA;AAAA,MACV,gBAAc,CAAC,KAAA;AAAA,MACf,YAAY,EAAA;AAAA;AAAA,GACd;AAEJ;AAEA,SAAS,mBAAoB,CAAA;AAAA,EAC3B,QAAA;AAAA,EACA,SAAW,EAAA,EAAE,IAAM,EAAA,WAAA,EAAa,SAAU,EAAA;AAAA,EAC1C,cAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAqB,EAAA;AACnB,EAAA,MAAM,EAAE,KAAA,EAAU,GAAA,mBAAA,CAAoB,MAAM,SAAS,CAAA;AAErD,EAAA,MAAM,YAAe,GAAA,WAAA;AAAA,IACnB,CAAC,KAAA,KACC,cAAe,CAAA,KAAA,CAAM,cAAc,WAAW,CAAA;AAAA,IAChD,CAAC,cAAc;AAAA,GACjB;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,QAAA;AAAA,MACA,WAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAU,EAAA,YAAA;AAAA,MACV,YAAY,EAAA,IAAA;AAAA,MACZ,gBAAc,CAAC;AAAA;AAAA,GACjB;AAEJ;AAEO,IAAM,mBAAgD,GAAA;AAAA,EAC3D,QAAU,EAAA,mBAAA;AAAA,EACV,WAAa,EAAA,iBAAA;AAAA,EACb,KAAO,EAAA,qBAAA;AAAA,EACP,MAAQ,EAAA,iBAAA;AAAA,EACR,MAAQ,EAAA,iBAAA;AAAA,EACR,IAAM,EAAA,eAAA;AAAA,EACN,QAAU,EAAA;AACZ;AAEO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAM,MAAA;AAAA,IACJ,SAAA,EAAW,EAAE,EAAA,EAAI,eAAgB,EAAA;AAAA,IACjC,QAAA;AAAA,IACA,IAAM,EAAA;AAAA,GACJ,GAAA,KAAA;AAEJ,EAAA,MAAM,EAAE,UAAA,EAAY,YAAa,EAAA,GAAI,WAAW,mBAAmB,CAAA;AAEnE,EAAA,MAAM,EAAE,YAAA,EAAc,iBAAkB,EAAA,GAAI,cAAe,CAAA;AAAA,IACzD,GAAG,KAAA;AAAA,IACH,QAAU,EAAA;AAAA,GACX,CAAA;AAED,EAAA,MAAM,IAAO,GAAA,WAAA;AAAA,IACX,CAAC,KAAmB,MAAA;AAAA,MAClB,GAAG,QAAA;AAAA,MACH,KAAA,EAAO,aAAa,KAAK;AAAA,KAC3B,CAAA;AAAA,IACA,CAAC,UAAU,YAAY;AAAA,GACzB;AAEA,EAAA,MAAM,sBAAyB,GAAA,WAAA;AAAA,IAC7B,CAAC,KAAA,KAAkB,iBAAkB,CAAA,KAAA,EAAO,CAAC,CAAA;AAAA,IAC7C,CAAC,iBAAiB;AAAA,GACpB;AAEA,EAAA,MAAM,oBAAuB,GAAA,WAAA;AAAA,IAC3B,CAAC,KAAA,KAAkB,iBAAkB,CAAA,KAAA,EAAO,CAAC,CAAA;AAAA,IAC7C,CAAC,iBAAiB;AAAA,GACpB;AAEA,EAAA,MAAM,QACH,OAAO,eAAA,KAAoB,aACxB,eAAgB,CAAA,QAAQ,IACxB,eAAoB,KAAA,MAAA;AAE1B,EAAM,MAAA,MAAA,GAAS,eAAe,IAAI,CAAA;AAElC,EAAA,IAAI,QAAa,KAAA,MAAA,IAAU,QAAa,KAAA,SAAA,IAAa,CAAC,MAAQ,EAAA;AAC5D,IAAO,OAAA,IAAA;AAAA;AAGT,EAAI,IAAA,mBAAA,CAAoB,QAAS,CAAA,QAAQ,CAAG,EAAA;AAC1C,IAAA,uBAEK,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAC,OAAS,EAAA,KAAK,EAAE,GAAI,CAAA,CAAC,IAAM,EAAA,KAAA,qBAC1B,GAAA,CAAA,KAAA,EAAA,EAA0B,SAAW,EAAA,UAAA,EAAY,MAAM,KACtD,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,IAAA,EAAM,KAAK,KAAK,CAAA;AAAA,QAChB,KAAA,EAAO,aAAa,KAAK,CAAA;AAAA,QACzB,cAAA,EACE,CAAC,KAAA,GAAQ,sBAAyB,GAAA;AAAA;AAAA,SAN9B,CAAG,EAAA,EAAE,IAAI,IAAI,CAAA,CASvB,CACD,CACH,EAAA,CAAA;AAAA;AAIJ,EACE,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,UAAY,EAAA,IAAA,EAAM,OAChC,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA,EAAQ,GAAG,KAAA,EAAO,CACrB,EAAA,CAAA;AAEJ","file":"value-editor.js","sourcesContent":["import {\n type ChangeEvent,\n type FormEvent,\n useCallback,\n useContext,\n} from 'react';\nimport { useValueEditor, type ValueEditorProps } from 'react-querybuilder';\nimport { Checkbox } from '../checkbox';\nimport { Input, type InputType } from '../input';\nimport { Radio, RadioGroup } from '../radio';\nimport { Switch } from '../switch';\nimport { TextArea } from '../textarea';\nimport { multiValueOperators, QueryBuilderContext } from './constants';\nimport type { QueryBuilderValueEditors } from './types';\nimport { getValidationResult } from './utils';\nimport { ValueSelector } from './value-selector';\n\nfunction CheckboxValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { icons } = useContext(QueryBuilderContext);\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Checkbox\n isDisabled={disabled}\n isSelected={value}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n >\n {icons?.checkbox}\n </Checkbox>\n );\n}\n\nfunction RadioGroupValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n values,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <RadioGroup\n value={value}\n isDisabled={disabled}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n >\n {values?.map((option) => (\n <Radio key={option.name} value={option.value}>\n {option.label}\n </Radio>\n ))}\n </RadioGroup>\n );\n}\n\nconst defaultOptions: unknown[] = [];\n\nfunction SelectValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n type,\n value,\n values = defaultOptions,\n ...rest\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <ValueSelector\n {...rest}\n disabled={disabled}\n multiple={type === 'multiselect'}\n options={values}\n title={name}\n validation={!valid}\n value={value}\n handleOnChange={handleOnChange}\n />\n );\n}\n\nfunction SwitchValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Switch\n isDisabled={disabled}\n isSelected={Boolean(value)}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n />\n );\n}\n\nfunction TextValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n inputType,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) =>\n handleOnChange(event.target.value),\n [handleOnChange],\n );\n\n return (\n <Input\n disabled={disabled}\n placeholder={placeholder}\n type={(inputType as InputType) ?? 'text'}\n value={value}\n onChange={handleChange}\n aria-invalid={!valid}\n aria-label={name}\n />\n );\n}\n\nfunction TextareaValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n const handleChange = useCallback(\n (event: FormEvent<HTMLSpanElement>) =>\n handleOnChange(event.currentTarget.textContent),\n [handleOnChange],\n );\n\n return (\n <TextArea\n disabled={disabled}\n placeholder={placeholder}\n value={value}\n onChange={handleChange}\n aria-label={name}\n aria-invalid={!valid}\n />\n );\n}\n\nexport const defaultValueEditors: QueryBuilderValueEditors = {\n checkbox: CheckboxValueEditor,\n multiselect: SelectValueEditor,\n radio: RadioGroupValueEditor,\n select: SelectValueEditor,\n switch: SwitchValueEditor,\n text: TextValueEditor,\n textarea: TextareaValueEditor,\n};\n\nexport function ValueEditor(props: ValueEditorProps) {\n const {\n fieldData: { id, valueEditorType },\n operator,\n rule: ruleProp,\n } = props;\n\n const { classNames, valueEditors } = useContext(QueryBuilderContext);\n\n const { valueAsArray, multiValueHandler } = useValueEditor({\n ...props,\n skipHook: true,\n });\n\n const rule = useCallback(\n (index: number) => ({\n ...ruleProp,\n value: valueAsArray[index],\n }),\n [ruleProp, valueAsArray],\n );\n\n const handleRangeStartChange = useCallback(\n (value: string) => multiValueHandler(value, 0),\n [multiValueHandler],\n );\n\n const handleRangeEndChange = useCallback(\n (value: string) => multiValueHandler(value, 1),\n [multiValueHandler],\n );\n\n const type =\n (typeof valueEditorType === 'function'\n ? valueEditorType(operator)\n : valueEditorType) ?? 'text';\n\n const Editor = valueEditors?.[type];\n\n if (operator === 'null' || operator === 'notNull' || !Editor) {\n return null;\n }\n\n if (multiValueOperators.includes(operator)) {\n return (\n <>\n {['start', 'end'].map((term, index) => (\n <div key={`${id}-${term}`} className={classNames?.rule?.value}>\n <Editor\n {...props}\n rule={rule(index)}\n value={valueAsArray[index]}\n handleOnChange={\n !index ? handleRangeStartChange : handleRangeEndChange\n }\n />\n </div>\n ))}\n </>\n );\n }\n\n return (\n <div className={classNames?.rule?.value}>\n <Editor {...props} />\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/query-builder/value-editor.tsx"],"names":[],"mappings":"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","file":"value-editor.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ChangeEvent,\n type FormEvent,\n useCallback,\n useContext,\n} from 'react';\nimport { type ValueEditorProps, useValueEditor } from 'react-querybuilder';\nimport { Checkbox } from '../checkbox';\nimport { Input, type InputType } from '../input';\nimport { Radio, RadioGroup } from '../radio';\nimport { Switch } from '../switch';\nimport { TextArea } from '../textarea';\nimport { QueryBuilderContext, multiValueOperators } from './constants';\nimport type { QueryBuilderValueEditors } from './types';\nimport { getValidationResult } from './utils';\nimport { ValueSelector } from './value-selector';\n\nfunction CheckboxValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { icons } = useContext(QueryBuilderContext);\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Checkbox\n isDisabled={disabled}\n isSelected={value}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n >\n {icons?.checkbox}\n </Checkbox>\n );\n}\n\nfunction RadioGroupValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n values,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <RadioGroup\n value={value}\n isDisabled={disabled}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n >\n {values?.map((option) => (\n <Radio key={option.name} value={option.value}>\n {option.label}\n </Radio>\n ))}\n </RadioGroup>\n );\n}\n\nconst defaultOptions: unknown[] = [];\n\nfunction SelectValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n type,\n value,\n values = defaultOptions,\n ...rest\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <ValueSelector\n {...rest}\n disabled={disabled}\n multiple={type === 'multiselect'}\n options={values}\n title={name}\n validation={!valid}\n value={value}\n handleOnChange={handleOnChange}\n />\n );\n}\n\nfunction SwitchValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Switch\n isDisabled={disabled}\n isSelected={Boolean(value)}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n />\n );\n}\n\nfunction TextValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n inputType,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) =>\n handleOnChange(event.target.value),\n [handleOnChange],\n );\n\n return (\n <Input\n disabled={disabled}\n placeholder={placeholder}\n type={(inputType as InputType) ?? 'text'}\n value={value}\n onChange={handleChange}\n aria-invalid={!valid}\n aria-label={name}\n />\n );\n}\n\nfunction TextareaValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n const handleChange = useCallback(\n (event: FormEvent<HTMLSpanElement>) =>\n handleOnChange(event.currentTarget.textContent),\n [handleOnChange],\n );\n\n return (\n <TextArea\n disabled={disabled}\n placeholder={placeholder}\n value={value}\n onChange={handleChange}\n aria-label={name}\n aria-invalid={!valid}\n />\n );\n}\n\nexport const defaultValueEditors: QueryBuilderValueEditors = {\n checkbox: CheckboxValueEditor,\n multiselect: SelectValueEditor,\n radio: RadioGroupValueEditor,\n select: SelectValueEditor,\n switch: SwitchValueEditor,\n text: TextValueEditor,\n textarea: TextareaValueEditor,\n};\n\nexport function ValueEditor(props: ValueEditorProps) {\n const {\n fieldData: { id, valueEditorType },\n operator,\n rule: ruleProp,\n } = props;\n\n const { classNames, valueEditors } = useContext(QueryBuilderContext);\n\n const { valueAsArray, multiValueHandler } = useValueEditor({\n ...props,\n skipHook: true,\n });\n\n const rule = useCallback(\n (index: number) => ({\n ...ruleProp,\n value: valueAsArray[index],\n }),\n [ruleProp, valueAsArray],\n );\n\n const handleRangeStartChange = useCallback(\n (value: string) => multiValueHandler(value, 0),\n [multiValueHandler],\n );\n\n const handleRangeEndChange = useCallback(\n (value: string) => multiValueHandler(value, 1),\n [multiValueHandler],\n );\n\n const type =\n (typeof valueEditorType === 'function'\n ? valueEditorType(operator)\n : valueEditorType) ?? 'text';\n\n const Editor = valueEditors?.[type];\n\n if (operator === 'null' || operator === 'notNull' || !Editor) {\n return null;\n }\n\n if (multiValueOperators.includes(operator)) {\n return (\n <>\n {['start', 'end'].map((term, index) => (\n <div key={`${id}-${term}`} className={classNames?.rule?.value}>\n <Editor\n {...props}\n rule={rule(index)}\n value={valueAsArray[index]}\n handleOnChange={\n index ? handleRangeEndChange : handleRangeStartChange\n }\n />\n </div>\n ))}\n </>\n );\n }\n\n return (\n <div className={classNames?.rule?.value}>\n <Editor {...props} />\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/query-builder/value-selector.tsx"],"names":[],"mappings":";;;;;;;;;;;AAgBO,SAAS,aAAiD,CAAA;AAAA,EAC/D,cAAA;AAAA,EACA,aAAA;AAAA,EACA,OAAS,EAAA,WAAA;AAAA,EACT,QAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAA0B,EAAA;AACxB,EAAA,MAAM,EAAE,KAAA,EAAO,IAAK,EAAA,GAAI,WAAW,mBAAmB,CAAA;AAEtD,EAAA,MAAM,EAAE,QAAA,EAAU,GAAI,EAAA,GAAI,gBAAiB,CAAA;AAAA,IACzC,cAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,qBAAwB,GAAA,WAAA;AAAA,IAC5B,CAAC,SAAA,KAAmB,QAAS,CAAA,CAAA,EAAG,SAAS,CAAE,CAAA,CAAA;AAAA,IAC3C,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,MAAM,uBAA0B,GAAA,WAAA;AAAA,IAC9B,CAAC,SAAoB,QAAS,CAAA,CAAC,GAAG,IAAI,CAAA,CAAE,IAAK,CAAA,IAAI,CAAC,CAAA;AAAA,IAClD,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,MAAM,OAAU,GAAA,OAAA;AAAA,IACd,MACE,mBAAmB,WAAW,CAAA,GAC1B,YAAY,GAAI,CAAA,CAAC,OACf,qBAAA,IAAA,CAAC,WACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,UAAA,EAAA,EAAY,kBAAQ,KAAM,EAAA,CAAA;AAAA,MAC1B,OAAQ,CAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,2BACnB,GAAA,CAAA,WAAA,EAAA,EAAY,EAAI,EAAA,MAAA,CAAO,IACrB,EAAA,QAAA,EAAA,MAAA,CAAO,KADyB,EAAA,EAAA,MAAA,CAAO,IAE1C,CACD;AAAA,KAAA,EAAA,EANe,QAAQ,KAO1B,CACD,CACD,GAAA,WAAA,CAAY,IAAI,CAAC,MAAA,qBACd,GAAA,CAAA,WAAA,EAAA,EAAY,IAAI,MAAO,CAAA,IAAA,EACrB,iBAAO,KADyB,EAAA,EAAA,MAAA,CAAO,IAE1C,CACD,CAAA;AAAA,IACP,CAAC,WAAW;AAAA,GACd;AAEA,EAAA,OAAO,QACL,mBAAA,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,YAAc,EAAA,GAAA;AAAA,MACd,aAAc,EAAA,UAAA;AAAA,MACd,IAAA;AAAA,MACA,iBAAmB,EAAA,uBAAA;AAAA,MACnB,YAAY,EAAA,KAAA;AAAA,MAEX,QAAA,EAAA;AAAA;AAAA,GAGH,mBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,aAAa,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAI,GAAA,GAAA,CAAI,CAAC,CAAI,GAAA,GAAA;AAAA,MAC3C,IAAA;AAAA,MACA,SAAA,EAAW,KAAU,KAAA,OAAA,IAAW,CAAC,UAAA;AAAA,MACjC,iBAAmB,EAAA,qBAAA;AAAA,MACnB,YAAY,EAAA,KAAA;AAAA,MAEX,QAAA,EAAA,CAAC,gCAEE,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,MACC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,eACE,EAAA,EAAA,QAAA,EAAA,CAAC,EAAE,YAAA,OAAmB,YACzB,EAAA,CAAA;AAAA,UACC,eAAA,CAAgB,KAAO,EAAA,MAAA,EAAQ,WAAW;AAAA,SAC7C,EAAA,CAAA;AAAA,wBACC,GAAA,CAAA,OAAA,EAAA,EACC,QAAC,kBAAA,GAAA,CAAA,WAAA,EAAA,EAAa,mBAAQ,CACxB,EAAA;AAAA,OACF,EAAA;AAAA;AAAA,GAEJ;AAEJ","file":"value-selector.js","sourcesContent":["import type { Key } from '@react-types/shared';\nimport { useCallback, useContext, useMemo } from 'react';\nimport type { Selection } from 'react-aria-components';\nimport {\n type FullOption,\n isOptionGroupArray,\n useValueSelector,\n type ValueSelectorProps,\n} from 'react-querybuilder';\nimport { callRenderProps } from '../../utils';\nimport { AriaHeader, AriaSection, AriaSelectValue } from '../aria';\nimport { Button } from '../button';\nimport { Options, OptionsItem, OptionsList } from '../options';\nimport { Select } from '../select';\nimport { QueryBuilderContext } from './constants';\n\nexport function ValueSelector<T extends FullOption = FullOption>({\n handleOnChange,\n listsAsArrays,\n options: optionsProp,\n multiple,\n title,\n validation,\n value,\n ...rest\n}: ValueSelectorProps<T>) {\n const { icons, size } = useContext(QueryBuilderContext);\n\n const { onChange, val } = useValueSelector({\n handleOnChange,\n listsAsArrays,\n multiple,\n value,\n });\n\n const handleSelectionChange = useCallback(\n (selection: Key) => onChange(`${selection}`),\n [onChange],\n );\n\n const handleMultiSelectChange = useCallback(\n (keys: Selection) => onChange([...keys].join(', ')),\n [onChange],\n );\n\n const options = useMemo(\n () =>\n isOptionGroupArray(optionsProp)\n ? optionsProp.map((section) => (\n <AriaSection key={section.label}>\n <AriaHeader>{section.label}</AriaHeader>\n {section.options.map((option) => (\n <OptionsItem id={option.name} key={option.name}>\n {option.label}\n </OptionsItem>\n ))}\n </AriaSection>\n ))\n : optionsProp.map((option) => (\n <OptionsItem id={option.name} key={option.name}>\n {option.label}\n </OptionsItem>\n )),\n [optionsProp],\n );\n\n return multiple ? (\n <OptionsList // TODO: Replace with ChipField when it exists\n {...rest}\n selectedKeys={val}\n selectionMode='multiple'\n size={size}\n onSelectionChange={handleMultiSelectChange}\n aria-label={title}\n >\n {options}\n </OptionsList>\n ) : (\n <Select\n {...rest}\n selectedKey={Array.isArray(val) ? val[0] : val}\n size={size}\n isInvalid={title === 'Value' && !validation}\n onSelectionChange={handleSelectionChange}\n aria-label={title}\n >\n {(renderProps) => (\n <>\n <Button>\n <AriaSelectValue>\n {({ selectedText }) => selectedText}\n </AriaSelectValue>\n {callRenderProps(icons?.select, renderProps)}\n </Button>\n <Options>\n <OptionsList>{options}</OptionsList>\n </Options>\n </>\n )}\n </Select>\n );\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/query-builder/value-selector.tsx"],"names":[],"mappings":"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","file":"value-selector.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { Key } from '@react-types/shared';\nimport { useCallback, useContext, useMemo } from 'react';\nimport type { Selection } from 'react-aria-components';\nimport {\n type FullOption,\n type ValueSelectorProps,\n isOptionGroupArray,\n useValueSelector,\n} from 'react-querybuilder';\nimport { callRenderProps } from '../../utils';\nimport { AriaHeader, AriaSection, AriaSelectValue } from '../aria';\nimport { Button } from '../button';\nimport { Options, OptionsItem, OptionsList } from '../options';\nimport { Select } from '../select';\nimport { QueryBuilderContext } from './constants';\n\nexport function ValueSelector<T extends FullOption = FullOption>({\n handleOnChange,\n listsAsArrays,\n options: optionsProp,\n multiple,\n title,\n validation,\n value,\n ...rest\n}: ValueSelectorProps<T>) {\n const { icons, size } = useContext(QueryBuilderContext);\n\n const { onChange, val } = useValueSelector({\n handleOnChange,\n listsAsArrays,\n multiple,\n value,\n });\n\n const handleSelectionChange = useCallback(\n (selection: Key) => onChange(`${selection}`),\n [onChange],\n );\n\n const handleMultiSelectChange = useCallback(\n (keys: Selection) => onChange([...keys].join(', ')),\n [onChange],\n );\n\n const options = useMemo(\n () =>\n isOptionGroupArray(optionsProp)\n ? optionsProp.map((section) => (\n <AriaSection key={section.label}>\n <AriaHeader>{section.label}</AriaHeader>\n {section.options.map((option) => (\n <OptionsItem id={option.name} key={option.name}>\n {option.label}\n </OptionsItem>\n ))}\n </AriaSection>\n ))\n : optionsProp.map((option) => (\n <OptionsItem id={option.name} key={option.name}>\n {option.label}\n </OptionsItem>\n )),\n [optionsProp],\n );\n\n return multiple ? (\n <OptionsList // TODO: Replace with ChipField when it exists\n {...rest}\n selectedKeys={val}\n selectionMode='multiple'\n size={size}\n onSelectionChange={handleMultiSelectChange}\n aria-label={title}\n >\n {options}\n </OptionsList>\n ) : (\n <Select\n {...rest}\n selectedKey={Array.isArray(val) ? val[0] : val}\n size={size}\n isInvalid={title === 'Value' && !validation}\n onSelectionChange={handleSelectionChange}\n aria-label={title}\n >\n {(renderProps) => (\n <>\n <Button>\n <AriaSelectValue>\n {({ selectedText }) => selectedText}\n </AriaSelectValue>\n {callRenderProps(icons?.select, renderProps)}\n </Button>\n <Options>\n <OptionsList>{options}</OptionsList>\n </Options>\n </>\n )}\n </Select>\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { RadioContextProps, RadioRenderProps, RadioClassNames, RadioAlignment, RadioGroupProps } from './types.js';
1
+ import { RadioRenderProps, RadioClassNames, RadioAlignment, RadioContextProps, RadioGroupProps } from './types.js';
2
2
  import * as react from 'react';
3
3
  import * as react_aria_components from 'react-aria-components';
4
4
  import { ContextValue } from 'react-aria-components';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/radio/radio.tsx"],"names":["Radio","RACRadio","RadioGroup","RACRadioGroup"],"mappings":"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","file":"radio.js","sourcesContent":["import {\n createContext,\n type ForwardedRef,\n forwardRef,\n useMemo,\n useCallback,\n} from 'react';\nimport {\n RadioGroup as RACRadioGroup,\n Radio as RACRadio,\n type ContextValue,\n Provider,\n type LabelProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { AriaLabelContext } from '../aria';\nimport {\n radioClassNames,\n radioGroupStateVars,\n radioStateVars,\n} from './radio.css';\nimport type {\n RadioGroupRenderProps,\n RadioGroupProps,\n RadioProps,\n RadioRenderProps,\n RadioContextProps,\n} from './types';\n\nexport const RadioContext =\n createContext<ContextValue<RadioContextProps, HTMLLabelElement>>(null);\n\nexport const Radio = forwardRef(function Radio(\n props: RadioProps,\n ref: ForwardedRef<HTMLLabelElement>,\n) {\n [props, ref] = useContextProps(props, ref, RadioContext);\n props = useDefaultProps(props, 'Radio');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n alignInput = 'end',\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(radioClassNames, theme.Radio, classNamesProp),\n [classNamesProp, theme.Radio],\n );\n\n const style = useCallback(\n (renderProps: RadioRenderProps) =>\n inlineVars(radioStateVars, {\n ...renderProps,\n alignInput,\n }),\n [alignInput],\n );\n\n const children = useCallback(\n (renderProps: RadioRenderProps) => (\n <span className={classNames?.radio?.radio}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </span>\n ),\n [childrenProp, classNames?.radio],\n );\n\n return (\n <RACRadio\n {...rest}\n ref={ref}\n style={style}\n className={classNames?.radio?.container}\n >\n {children}\n </RACRadio>\n );\n});\n\nexport const RadioGroupContext =\n createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);\n\nexport const RadioGroup = forwardRef(function RadioGroup(\n props: RadioGroupProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, RadioGroupContext);\n\n props = useDefaultProps(props, 'RadioGroup');\n\n const theme = useTheme();\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n alignInput = 'end',\n orientation = 'vertical',\n ...rest\n } = props;\n\n const classNames = useMemo(\n () => mergeClassNames(radioClassNames, theme.Radio, classNamesProp),\n [classNamesProp, theme.Radio],\n );\n\n const style = useCallback(\n (renderProps: RadioGroupRenderProps) =>\n inlineVars(radioGroupStateVars, {\n ...renderProps,\n alignInput,\n orientation,\n }),\n [alignInput, orientation],\n );\n\n const values = useMemo<\n [\n [typeof RadioContext, ContextValue<RadioContextProps, HTMLLabelElement>],\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n ]\n >(\n () => [\n [\n RadioContext,\n {\n classNames,\n alignInput,\n },\n ],\n [\n AriaLabelContext,\n {\n className: classNames?.label,\n },\n ],\n ],\n [alignInput, classNames],\n );\n\n const children = useCallback(\n (renderProps: RadioGroupRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.group?.group}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.group, values],\n );\n\n return (\n <RACRadioGroup\n {...rest}\n ref={ref}\n className={classNames?.group?.container}\n style={style}\n orientation={orientation}\n >\n {children}\n </RACRadioGroup>\n );\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/radio/radio.tsx"],"names":["Radio","RACRadio","RadioGroup","RACRadioGroup"],"mappings":"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","file":"radio.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n type LabelProps,\n Provider,\n Radio as RACRadio,\n RadioGroup as RACRadioGroup,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { AriaLabelContext } from '../aria';\nimport {\n radioClassNames,\n radioGroupStateVars,\n radioStateVars,\n} from './radio.css';\nimport type {\n RadioContextProps,\n RadioGroupProps,\n RadioGroupRenderProps,\n RadioProps,\n RadioRenderProps,\n} from './types';\n\nexport const RadioContext =\n createContext<ContextValue<RadioContextProps, HTMLLabelElement>>(null);\n\nexport const Radio = forwardRef(function Radio(\n props: RadioProps,\n ref: ForwardedRef<HTMLLabelElement>,\n) {\n [props, ref] = useContextProps(props, ref, RadioContext);\n props = useDefaultProps(props, 'Radio');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n alignInput = 'end',\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(radioClassNames, theme.Radio, classNamesProp),\n [classNamesProp, theme.Radio],\n );\n\n const style = useCallback(\n (renderProps: RadioRenderProps) =>\n inlineVars(radioStateVars, {\n ...renderProps,\n alignInput,\n }),\n [alignInput],\n );\n\n const children = useCallback(\n (renderProps: RadioRenderProps) => (\n <span className={classNames?.radio?.radio}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </span>\n ),\n [childrenProp, classNames?.radio],\n );\n\n return (\n <RACRadio\n {...rest}\n ref={ref}\n style={style}\n className={classNames?.radio?.container}\n >\n {children}\n </RACRadio>\n );\n});\n\nexport const RadioGroupContext =\n createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);\n\nexport const RadioGroup = forwardRef(function RadioGroup(\n props: RadioGroupProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, RadioGroupContext);\n\n props = useDefaultProps(props, 'RadioGroup');\n\n const theme = useTheme();\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n alignInput = 'end',\n orientation = 'vertical',\n ...rest\n } = props;\n\n const classNames = useMemo(\n () => mergeClassNames(radioClassNames, theme.Radio, classNamesProp),\n [classNamesProp, theme.Radio],\n );\n\n const style = useCallback(\n (renderProps: RadioGroupRenderProps) =>\n inlineVars(radioGroupStateVars, {\n ...renderProps,\n alignInput,\n orientation,\n }),\n [alignInput, orientation],\n );\n\n const values = useMemo<\n [\n [typeof RadioContext, ContextValue<RadioContextProps, HTMLLabelElement>],\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n ]\n >(\n () => [\n [\n RadioContext,\n {\n classNames,\n alignInput,\n },\n ],\n [\n AriaLabelContext,\n {\n className: classNames?.label,\n },\n ],\n ],\n [alignInput, classNames],\n );\n\n const children = useCallback(\n (renderProps: RadioGroupRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.group?.group}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.group, values],\n );\n\n return (\n <RACRadioGroup\n {...rest}\n ref={ref}\n className={classNames?.group?.container}\n style={style}\n orientation={orientation}\n >\n {children}\n </RACRadioGroup>\n );\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { RadioGroupRenderProps as RadioGroupRenderProps$1, RadioGroupProps as RadioGroupProps$1, RadioRenderProps as RadioRenderProps$1, RadioProps as RadioProps$1 } from 'react-aria-components';
1
+ import { RadioRenderProps as RadioRenderProps$1, RadioProps as RadioProps$1, RadioGroupProps as RadioGroupProps$1, RadioGroupRenderProps as RadioGroupRenderProps$1 } from 'react-aria-components';
2
2
  import { PartialDeep } from 'type-fest';
3
3
  import { RenderPropsChildren } from '../../types/react-aria.js';
4
4
  import 'react';
@@ -2,8 +2,8 @@ export { SearchField, SearchFieldContext } from './search-field.js';
2
2
  export { searchFieldClassNames, searchFieldContainer, searchFieldSpaceVars, searchFieldStateVars } from './search-field.css.js';
3
3
  export { SearchFieldClassNames, SearchFieldMapping, SearchFieldProps, SearchFieldRenderProps, SearchFieldState } from './types.js';
4
4
  import '../input/types.js';
5
- import '../../types/generic.js';
6
5
  import 'react-aria-components';
6
+ import '../../types/generic.js';
7
7
  import 'react';
8
8
  import 'type-fest';
9
9
  import '../../types/props.js';
@@ -2,7 +2,7 @@ import { InputSize } from '../input/types.js';
2
2
  import * as react from 'react';
3
3
  import * as react_aria_components from 'react-aria-components';
4
4
  import { ContextValue } from 'react-aria-components';
5
- import { SearchFieldProps, SearchFieldClassNames, SearchFieldMapping, SearchFieldVariants } from './types.js';
5
+ import { SearchFieldClassNames, SearchFieldMapping, SearchFieldVariants, SearchFieldProps } from './types.js';
6
6
  import '../../types/generic.js';
7
7
  import 'type-fest';
8
8
  import '../../types/props.js';
@@ -1,4 +1,4 @@
1
- import { SearchFieldRenderProps as SearchFieldRenderProps$1, SearchFieldProps as SearchFieldProps$1 } from 'react-aria-components';
1
+ import { SearchFieldProps as SearchFieldProps$1, SearchFieldRenderProps as SearchFieldRenderProps$1 } from 'react-aria-components';
2
2
  import { PartialDeep } from 'type-fest';
3
3
  import { AsType } from '../../types/generic.js';
4
4
  import { OmitProtectedProps } from '../../types/props.js';
@@ -1,4 +1,4 @@
1
- import { SelectProps, SelectClassNames, SelectMapping, SelectSizes } from './types.js';
1
+ import { SelectClassNames, SelectMapping, SelectSizes, SelectProps } from './types.js';
2
2
  import * as react_aria_components from 'react-aria-components';
3
3
  import { ContextValue } from 'react-aria-components';
4
4
  import * as react from 'react';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/select/select.tsx"],"names":["Select","AriaSelect"],"mappings":"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","file":"select.js","sourcesContent":["import {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type ForwardedRef,\n} from 'react';\nimport {\n Select as AriaSelect,\n Provider,\n type ContextValue,\n type FieldErrorProps,\n type LabelProps,\n type SelectRenderProps as RACSelectRenderProps,\n type SelectValueProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n AriaFieldErrorContext,\n AriaLabelContext,\n AriaSelectValueContext,\n AriaTextContext,\n} from '../aria';\nimport { ButtonContext, type ButtonProps } from '../button';\nimport { OptionsContext, type OptionsProps } from '../options';\nimport { selectClassNames, selectStateVars } from './select.css';\nimport type { SelectMapping, SelectProps } from './types';\n\nconst defaultMapping: SelectMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n toggle: {\n sm: { size: 'sm', variant: 'hollow' },\n lg: { size: 'md', variant: 'hollow' },\n },\n};\n\nexport const SelectContext =\n createContext<ContextValue<SelectProps<object>, HTMLDivElement>>(null);\n\nexport const Select = forwardRef(function Select<T extends object>(\n props: SelectProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, SelectContext);\n props = useDefaultProps(props, 'Select');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = 'lg',\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(selectClassNames, theme.Select, classNamesProp, {\n description: mapping.description[size],\n error: mapping.error[size],\n }),\n [classNamesProp, theme.Select, mapping, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n [\n typeof AriaSelectValueContext,\n ContextValue<SelectValueProps<object>, HTMLSpanElement>,\n ],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [\n typeof AriaFieldErrorContext,\n ContextValue<FieldErrorProps, HTMLElement>,\n ],\n [typeof OptionsContext, ContextValue<OptionsProps, HTMLElement>],\n ]\n >(\n () => [\n [AriaLabelContext, { className: classNames?.label }],\n [\n ButtonContext,\n {\n ...mapping.toggle[size],\n classNames: classNames?.toggle,\n },\n ],\n [\n AriaSelectValueContext,\n {\n className: classNames?.value,\n },\n ],\n [\n AriaTextContext,\n {\n slots: {\n description: { className: classNames?.description },\n },\n },\n ],\n [AriaFieldErrorContext, { className: classNames?.error }],\n [OptionsContext, { classNames: classNames?.options, size }],\n ],\n [classNames, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: RACSelectRenderProps) =>\n inlineVars(selectStateVars, {\n ...renderProps,\n size,\n }),\n [size],\n );\n\n const children = useCallback(\n (renderProps: RACSelectRenderProps) => (\n <div className={classNames?.select}>\n <Provider values={values}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </Provider>\n </div>\n ),\n [childrenProp, values, classNames?.select],\n );\n\n return (\n <AriaSelect\n {...props}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n {children}\n </AriaSelect>\n );\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/select/select.tsx"],"names":["Select","AriaSelect"],"mappings":"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","file":"select.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Select as AriaSelect,\n type ContextValue,\n type FieldErrorProps,\n type LabelProps,\n Provider,\n type SelectRenderProps as RACSelectRenderProps,\n type SelectValueProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n AriaFieldErrorContext,\n AriaLabelContext,\n AriaSelectValueContext,\n AriaTextContext,\n} from '../aria';\nimport { ButtonContext, type ButtonProps } from '../button';\nimport { OptionsContext, type OptionsProps } from '../options';\nimport { selectClassNames, selectStateVars } from './select.css';\nimport type { SelectMapping, SelectProps } from './types';\n\nconst defaultMapping: SelectMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n toggle: {\n sm: { size: 'sm', variant: 'hollow' },\n lg: { size: 'md', variant: 'hollow' },\n },\n};\n\nexport const SelectContext =\n createContext<ContextValue<SelectProps<object>, HTMLDivElement>>(null);\n\nexport const Select = forwardRef(function Select<T extends object>(\n props: SelectProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, SelectContext);\n props = useDefaultProps(props, 'Select');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = 'lg',\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(selectClassNames, theme.Select, classNamesProp, {\n description: mapping.description[size],\n error: mapping.error[size],\n }),\n [classNamesProp, theme.Select, mapping, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n [\n typeof AriaSelectValueContext,\n ContextValue<SelectValueProps<object>, HTMLSpanElement>,\n ],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [\n typeof AriaFieldErrorContext,\n ContextValue<FieldErrorProps, HTMLElement>,\n ],\n [typeof OptionsContext, ContextValue<OptionsProps, HTMLElement>],\n ]\n >(\n () => [\n [AriaLabelContext, { className: classNames?.label }],\n [\n ButtonContext,\n {\n ...mapping.toggle[size],\n classNames: classNames?.toggle,\n },\n ],\n [\n AriaSelectValueContext,\n {\n className: classNames?.value,\n },\n ],\n [\n AriaTextContext,\n {\n slots: {\n description: { className: classNames?.description },\n },\n },\n ],\n [AriaFieldErrorContext, { className: classNames?.error }],\n [OptionsContext, { classNames: classNames?.options, size }],\n ],\n [classNames, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: RACSelectRenderProps) =>\n inlineVars(selectStateVars, {\n ...renderProps,\n size,\n }),\n [size],\n );\n\n const children = useCallback(\n (renderProps: RACSelectRenderProps) => (\n <div className={classNames?.select}>\n <Provider values={values}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </Provider>\n </div>\n ),\n [childrenProp, values, classNames?.select],\n );\n\n return (\n <AriaSelect\n {...props}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n {children}\n </AriaSelect>\n );\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { SwitchProps, BaseSwitchProps } from './types.js';
1
+ import { BaseSwitchProps, SwitchProps } from './types.js';
2
2
  import * as react_aria_components from 'react-aria-components';
3
3
  import { ContextValue } from 'react-aria-components';
4
4
  import * as react from 'react';
@@ -1,9 +1,9 @@
1
1
  import { TabsClassNames } from './types.js';
2
- import '../../types/generic.js';
3
- import 'react';
4
2
  import '@react-types/shared';
3
+ import 'react';
5
4
  import 'react-aria-components';
6
5
  import 'type-fest';
6
+ import '../../types/generic.js';
7
7
 
8
8
  declare const tabsContainers: {
9
9
  list: string;
@@ -1,5 +1,5 @@
1
1
  import * as _react_types_shared from '@react-types/shared';
2
- import { TabsClassNames, TabsProps, TabListProps, TabListAlignment, TabListAnchor, TabListSizes, TabListVariants, TabPanelsProps, TabPanelProps } from './types.js';
2
+ import { TabsClassNames, TabListAlignment, TabListAnchor, TabListSizes, TabListVariants, TabListProps, TabPanelProps, TabPanelsProps, TabsProps } from './types.js';
3
3
  import * as react_aria_components from 'react-aria-components';
4
4
  import { ContextValue, SlotProps } from 'react-aria-components';
5
5
  import * as react from 'react';
@@ -1,7 +1,7 @@
1
1
  import '../../chunk-PZ5AY32C.js';
2
2
  import { createContext, forwardRef, useMemo, Children, useCallback } from 'react';
3
- import { useContextProps, Provider, Tabs as Tabs$1, TabList as TabList$1, Tab as Tab$1, TabPanel as TabPanel$1 } from 'react-aria-components';
4
- import { useDefaultProps, useTheme, usePropagatingPress } from '../../hooks/index.js';
3
+ import { Provider, Tabs as Tabs$1, TabList as TabList$1, Tab as Tab$1, TabPanel as TabPanel$1 } from 'react-aria-components';
4
+ import { useContextProps, useDefaultProps, useTheme, usePropagatingPress } from '../../hooks/index.js';
5
5
  import { mergeClassNames, inlineVars, callRenderProps } from '../../utils/index.js';
6
6
  import { tabsClassNames, tabListStateVars, tabStateVars, tabPanelsStateVars, tabPanelStateVars } from './tabs.css.js';
7
7
  import { jsx } from 'react/jsx-runtime';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/tabs/tabs.tsx"],"names":["Tabs","RACTabs","TabList","RACTabList","Tab","RACTab","TabPanels","TabPanel","RACTabPanel"],"mappings":"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","file":"tabs.js","sourcesContent":["import {\n Children,\n createContext,\n type ForwardedRef,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n Provider,\n Tab as RACTab,\n TabList as RACTabList,\n TabPanel as RACTabPanel,\n Tabs as RACTabs,\n type SlotProps,\n useContextProps,\n} from 'react-aria-components';\nimport type { RequiredDeep } from 'type-fest';\nimport { useDefaultProps, usePropagatingPress, useTheme } from '../../hooks';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n tabListStateVars,\n tabPanelsStateVars,\n tabPanelStateVars,\n tabsClassNames,\n tabStateVars,\n} from './tabs.css';\nimport type {\n TabsClassNames,\n TabListProps,\n TabPanelProps,\n TabPanelRenderProps,\n TabPanelsProps,\n TabProps,\n TabRenderProps,\n TabsProps,\n} from './types';\n\nexport const TEST_IDS: RequiredDeep<TabsClassNames> = {\n tabs: 'tabs',\n list: {\n container: 'tabs.list.container',\n list: 'tabs.list',\n },\n tab: {\n container: 'tabs.tab.container',\n tab: 'tabs.tab',\n },\n panels: {\n container: 'tabs.panels.container',\n panels: 'tabs.panels',\n },\n panel: {\n container: 'tabs.panel.container',\n panel: 'tabs.panel',\n },\n};\n\nexport const TabsContext =\n createContext<ContextValue<TabsProps, HTMLDivElement>>(null);\n\n/**\n * A required wrapper for other Tabs components, which manages\n * and provides the state context. Other Tabs components will\n * throw an error if not wrapped with this component\n *\n * NOTE: TabList & TabPanels do not have to be direct children\n * of this component. Additional layout can be introduced around\n * this components children\n */\nexport const Tabs = forwardRef(function Tabs(\n props: TabsProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabsContext);\n props = useDefaultProps(props, 'Tabs');\n\n const { classNames: classNamesProp, ...rest } = props;\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const values = useMemo<\n [\n [\n typeof TabListContext,\n ContextValue<TabListProps<unknown>, HTMLDivElement>,\n ],\n [typeof TabPanelsContext, ContextValue<TabPanelsProps, HTMLDivElement>],\n ]\n >(\n () => [\n [TabListContext, { classNames }],\n [TabPanelsContext, { classNames }],\n ],\n [classNames],\n );\n\n return (\n <Provider values={values}>\n <RACTabs\n {...rest}\n ref={ref}\n className={classNames?.tabs}\n data-testid={TEST_IDS.tabs}\n />\n </Provider>\n );\n});\n\nexport const TabListContext =\n createContext<ContextValue<TabListProps<unknown>, HTMLDivElement>>(null);\n\n/**\n * Parent of Tab\n */\nexport const TabList = forwardRef(function TabList<T extends object>(\n props: TabListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabListContext);\n props = useDefaultProps(props, 'TabList');\n\n const {\n children,\n classNames: classNamesProp,\n anchor = 'end',\n items,\n orientation = 'horizontal',\n size = 'lg',\n variant = 'border',\n align = orientation === 'horizontal' ? 'center' : 'start',\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const values = useMemo<[[typeof TabContext, Omit<TabProps, 'id'>]]>(\n () => [[TabContext, { classNames }]],\n [classNames],\n );\n\n const style = useMemo(\n () =>\n inlineVars(tabListStateVars, {\n align,\n anchor,\n count: items ? Array.from(items).length : Children.count(children),\n orientation,\n size,\n variant,\n }),\n [align, anchor, items, children, orientation, size, variant],\n );\n\n return (\n <Provider values={values}>\n <div\n className={classNames?.list?.container}\n style={style}\n data-testid={TEST_IDS.list.container}\n >\n <RACTabList<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.list}\n items={items}\n data-testid={TEST_IDS.list.list}\n >\n {children}\n </RACTabList>\n </div>\n </Provider>\n );\n});\n\nexport const TabContext =\n createContext<ContextValue<Omit<TabProps & SlotProps, 'id'>, HTMLDivElement>>(\n null,\n );\n\n/**\n * Must be a direct child of TabList\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabContext);\n props = useDefaultProps(props, 'Tab');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n onPress,\n onPressChange,\n onPressEnd,\n onPressStart,\n onPressUp,\n ...rest\n } = props;\n\n const { pressProps } = usePropagatingPress({\n onPress,\n onPressChange,\n onPressEnd,\n onPressStart,\n onPressUp,\n });\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: TabRenderProps) => inlineVars(tabStateVars, renderProps),\n [],\n );\n\n const children = useCallback(\n (renderProps: TabRenderProps) => (\n <div\n {...pressProps}\n className={classNames?.tab?.tab}\n data-testid={TEST_IDS.tab.tab}\n >\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [pressProps, classNames?.tab?.tab, childrenProp],\n );\n\n return (\n <RACTab\n {...rest}\n ref={ref}\n className={classNames?.tab?.container}\n style={style}\n data-testid={TEST_IDS.tab.container}\n >\n {children}\n </RACTab>\n );\n});\n\nexport const TabPanelsContext =\n createContext<ContextValue<TabPanelsProps, HTMLDivElement>>(null);\n\n/**\n * Parent of TabPanel, but only required if using shouldForceMount=true\n */\nexport const TabPanels = forwardRef(function TabPanels(\n props: TabPanelsProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabPanelsContext);\n props = useDefaultProps(props, 'TabPanels');\n\n const {\n children,\n classNames: classNamesProp,\n shouldForceMount = false,\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const style = useMemo(\n () => inlineVars(tabPanelsStateVars, { shouldForceMount }),\n [shouldForceMount],\n );\n\n const values = useMemo<\n [\n [\n typeof TabPanelContext,\n ContextValue<Omit<TabPanelProps, 'id'>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[TabPanelContext, { classNames, shouldForceMount }]],\n [classNames, shouldForceMount],\n );\n\n return (\n <Provider values={values}>\n <div\n ref={ref}\n className={classNames?.panels?.container}\n style={style}\n data-testid={TEST_IDS.panels.container}\n >\n <div\n className={classNames?.panels?.panels}\n data-testid={TEST_IDS.panels.panels}\n >\n {children}\n </div>\n </div>\n </Provider>\n );\n});\n\nexport const TabPanelContext =\n createContext<ContextValue<Omit<TabPanelProps, 'id'>, HTMLDivElement>>(null);\n\n/**\n * Must be direct child of TabPanels if TabPanel implements shouldForceMount=true\n *\n * Othewise can be used anywhere inside of Tabs. TabPanels may be desirable to use\n * if theme implements any styles that adjust layout\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabPanelContext);\n props = useDefaultProps(props, 'TabPanel');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n shouldForceMount = false,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: TabPanelRenderProps) =>\n inlineVars(tabPanelStateVars, { ...renderProps, shouldForceMount }),\n [shouldForceMount],\n );\n\n const children = useCallback(\n (renderProps: TabPanelRenderProps) => (\n <div\n className={classNames?.panel?.panel}\n data-testid={TEST_IDS.panel.panel}\n >\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [childrenProp, classNames?.panel?.panel],\n );\n\n return (\n <RACTabPanel\n {...rest}\n ref={ref}\n className={classNames?.panel?.container}\n shouldForceMount={shouldForceMount}\n style={style}\n data-testid={TEST_IDS.panel.container}\n >\n {children}\n </RACTabPanel>\n );\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/tabs/tabs.tsx"],"names":["Tabs","RACTabs","TabList","RACTabList","Tab","RACTab","TabPanels","TabPanel","RACTabPanel"],"mappings":"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","file":"tabs.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Children,\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n Provider,\n Tab as RACTab,\n TabList as RACTabList,\n TabPanel as RACTabPanel,\n Tabs as RACTabs,\n type SlotProps,\n} from 'react-aria-components';\nimport type { RequiredDeep } from 'type-fest';\nimport {\n useContextProps,\n useDefaultProps,\n usePropagatingPress,\n useTheme,\n} from '../../hooks';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n tabListStateVars,\n tabPanelStateVars,\n tabPanelsStateVars,\n tabStateVars,\n tabsClassNames,\n} from './tabs.css';\nimport type {\n TabListProps,\n TabPanelProps,\n TabPanelRenderProps,\n TabPanelsProps,\n TabProps,\n TabRenderProps,\n TabsClassNames,\n TabsProps,\n} from './types';\n\nexport const TEST_IDS: RequiredDeep<TabsClassNames> = {\n tabs: 'tabs',\n list: {\n container: 'tabs.list.container',\n list: 'tabs.list',\n },\n tab: {\n container: 'tabs.tab.container',\n tab: 'tabs.tab',\n },\n panels: {\n container: 'tabs.panels.container',\n panels: 'tabs.panels',\n },\n panel: {\n container: 'tabs.panel.container',\n panel: 'tabs.panel',\n },\n};\n\nexport const TabsContext =\n createContext<ContextValue<TabsProps, HTMLDivElement>>(null);\n\n/**\n * A required wrapper for other Tabs components, which manages\n * and provides the state context. Other Tabs components will\n * throw an error if not wrapped with this component\n *\n * NOTE: TabList & TabPanels do not have to be direct children\n * of this component. Additional layout can be introduced around\n * this components children\n */\nexport const Tabs = forwardRef(function Tabs(\n props: TabsProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabsContext);\n props = useDefaultProps(props, 'Tabs');\n\n const { classNames: classNamesProp, ...rest } = props;\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const values = useMemo<\n [\n [\n typeof TabListContext,\n ContextValue<TabListProps<unknown>, HTMLDivElement>,\n ],\n [typeof TabPanelsContext, ContextValue<TabPanelsProps, HTMLDivElement>],\n ]\n >(\n () => [\n [TabListContext, { classNames }],\n [TabPanelsContext, { classNames }],\n ],\n [classNames],\n );\n\n return (\n <Provider values={values}>\n <RACTabs\n {...rest}\n ref={ref}\n className={classNames?.tabs}\n data-testid={TEST_IDS.tabs}\n />\n </Provider>\n );\n});\n\nexport const TabListContext =\n createContext<ContextValue<TabListProps<unknown>, HTMLDivElement>>(null);\n\n/**\n * Parent of Tab\n */\nexport const TabList = forwardRef(function TabList<T extends object>(\n props: TabListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabListContext);\n props = useDefaultProps(props, 'TabList');\n\n const {\n children,\n classNames: classNamesProp,\n anchor = 'end',\n items,\n orientation = 'horizontal',\n size = 'lg',\n variant = 'border',\n align = orientation === 'horizontal' ? 'center' : 'start',\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const values = useMemo<[[typeof TabContext, Omit<TabProps, 'id'>]]>(\n () => [[TabContext, { classNames }]],\n [classNames],\n );\n\n const style = useMemo(\n () =>\n inlineVars(tabListStateVars, {\n align,\n anchor,\n count: items ? Array.from(items).length : Children.count(children),\n orientation,\n size,\n variant,\n }),\n [align, anchor, items, children, orientation, size, variant],\n );\n\n return (\n <Provider values={values}>\n <div\n className={classNames?.list?.container}\n style={style}\n data-testid={TEST_IDS.list.container}\n >\n <RACTabList<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.list}\n items={items}\n data-testid={TEST_IDS.list.list}\n >\n {children}\n </RACTabList>\n </div>\n </Provider>\n );\n});\n\nexport const TabContext =\n createContext<ContextValue<Omit<TabProps & SlotProps, 'id'>, HTMLDivElement>>(\n null,\n );\n\n/**\n * Must be a direct child of TabList\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabContext);\n props = useDefaultProps(props, 'Tab');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n onPress,\n onPressChange,\n onPressEnd,\n onPressStart,\n onPressUp,\n ...rest\n } = props;\n\n const { pressProps } = usePropagatingPress({\n onPress,\n onPressChange,\n onPressEnd,\n onPressStart,\n onPressUp,\n });\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: TabRenderProps) => inlineVars(tabStateVars, renderProps),\n [],\n );\n\n const children = useCallback(\n (renderProps: TabRenderProps) => (\n <div\n {...pressProps}\n className={classNames?.tab?.tab}\n data-testid={TEST_IDS.tab.tab}\n >\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [pressProps, classNames?.tab?.tab, childrenProp],\n );\n\n return (\n <RACTab\n {...rest}\n ref={ref}\n className={classNames?.tab?.container}\n style={style}\n data-testid={TEST_IDS.tab.container}\n >\n {children}\n </RACTab>\n );\n});\n\nexport const TabPanelsContext =\n createContext<ContextValue<TabPanelsProps, HTMLDivElement>>(null);\n\n/**\n * Parent of TabPanel, but only required if using shouldForceMount=true\n */\nexport const TabPanels = forwardRef(function TabPanels(\n props: TabPanelsProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabPanelsContext);\n props = useDefaultProps(props, 'TabPanels');\n\n const {\n children,\n classNames: classNamesProp,\n shouldForceMount = false,\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const style = useMemo(\n () => inlineVars(tabPanelsStateVars, { shouldForceMount }),\n [shouldForceMount],\n );\n\n const values = useMemo<\n [\n [\n typeof TabPanelContext,\n ContextValue<Omit<TabPanelProps, 'id'>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[TabPanelContext, { classNames, shouldForceMount }]],\n [classNames, shouldForceMount],\n );\n\n return (\n <Provider values={values}>\n <div\n ref={ref}\n className={classNames?.panels?.container}\n style={style}\n data-testid={TEST_IDS.panels.container}\n >\n <div\n className={classNames?.panels?.panels}\n data-testid={TEST_IDS.panels.panels}\n >\n {children}\n </div>\n </div>\n </Provider>\n );\n});\n\nexport const TabPanelContext =\n createContext<ContextValue<Omit<TabPanelProps, 'id'>, HTMLDivElement>>(null);\n\n/**\n * Must be direct child of TabPanels if TabPanel implements shouldForceMount=true\n *\n * Othewise can be used anywhere inside of Tabs. TabPanels may be desirable to use\n * if theme implements any styles that adjust layout\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, TabPanelContext);\n props = useDefaultProps(props, 'TabPanel');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n shouldForceMount = false,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(tabsClassNames, theme.Tabs, classNamesProp),\n [theme.Tabs, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: TabPanelRenderProps) =>\n inlineVars(tabPanelStateVars, { ...renderProps, shouldForceMount }),\n [shouldForceMount],\n );\n\n const children = useCallback(\n (renderProps: TabPanelRenderProps) => (\n <div\n className={classNames?.panel?.panel}\n data-testid={TEST_IDS.panel.panel}\n >\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [childrenProp, classNames?.panel?.panel],\n );\n\n return (\n <RACTabPanel\n {...rest}\n ref={ref}\n className={classNames?.panel?.container}\n shouldForceMount={shouldForceMount}\n style={style}\n data-testid={TEST_IDS.panel.container}\n >\n {children}\n </RACTabPanel>\n );\n});\n"]}
@@ -1,8 +1,8 @@
1
- import { AsType } from '../../types/generic.js';
1
+ import { PressEvents, Orientation } from '@react-types/shared';
2
2
  import { PropsWithChildren } from 'react';
3
- import { Orientation, PressEvents } from '@react-types/shared';
4
- import { TabRenderProps as TabRenderProps$1, TabPanelRenderProps as TabPanelRenderProps$1, TabPanelProps as TabPanelProps$1, TabsProps as TabsProps$1, TabListProps as TabListProps$1, TabProps as TabProps$1 } from 'react-aria-components';
3
+ import { TabsProps as TabsProps$1, TabProps as TabProps$1, TabRenderProps as TabRenderProps$1, TabListProps as TabListProps$1, TabPanelProps as TabPanelProps$1, TabPanelRenderProps as TabPanelRenderProps$1 } from 'react-aria-components';
5
4
  import { PartialDeep } from 'type-fest';
5
+ import { AsType } from '../../types/generic.js';
6
6
 
7
7
  type TabsClassNames = PartialDeep<{
8
8
  tabs: string;
@@ -1,7 +1,7 @@
1
- import { TextFieldProps, TextFieldClassNames, TextFieldMapping, TextFieldSizes } from './types.js';
1
+ import { TextFieldClassNames, TextFieldMapping, TextFieldSizes, TextFieldProps } from './types.js';
2
2
  import * as _react_types_shared from '@react-types/shared';
3
3
  import * as react from 'react';
4
- import { ContextValue, TextFieldRenderProps } from 'react-aria-components';
4
+ import { TextFieldRenderProps, ContextValue } from 'react-aria-components';
5
5
  import 'type-fest';
6
6
  import '../../types/generic.js';
7
7
  import '../input/types.js';
@@ -17,12 +17,13 @@ declare const TextField: (props: {
17
17
  slot?: (string | null) | undefined;
18
18
  isDisabled?: boolean | undefined;
19
19
  autoFocus?: boolean | undefined;
20
- onFocus?: ((e: react.FocusEvent<Element, Element>) => void) | undefined;
21
- onBlur?: ((e: react.FocusEvent<Element, Element>) => void) | undefined;
20
+ onFocus?: ((e: react.FocusEvent<HTMLInputElement, Element>) => void) | undefined;
21
+ onBlur?: ((e: react.FocusEvent<HTMLInputElement, Element>) => void) | undefined;
22
22
  onFocusChange?: ((isFocused: boolean) => void) | undefined;
23
23
  onKeyDown?: ((e: _react_types_shared.KeyboardEvent) => void) | undefined;
24
24
  onKeyUp?: ((e: _react_types_shared.KeyboardEvent) => void) | undefined;
25
25
  'aria-haspopup'?: (boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog") | undefined;
26
+ 'aria-controls'?: string | undefined;
26
27
  excludeFromTabOrder?: boolean | undefined;
27
28
  'aria-label'?: string | undefined;
28
29
  'aria-labelledby'?: string | undefined;
@@ -1,4 +1,4 @@
1
- import { TextFieldRenderProps as TextFieldRenderProps$1, TextFieldProps as TextFieldProps$1 } from 'react-aria-components';
1
+ import { TextFieldProps as TextFieldProps$1, TextFieldRenderProps as TextFieldRenderProps$1 } from 'react-aria-components';
2
2
  import { PartialDeep } from 'type-fest';
3
3
  import { AsType } from '../../types/generic.js';
4
4
  import { InputClassNames } from '../input/types.js';
@@ -1,7 +1,7 @@
1
1
  import { TextAreaClassNames } from './types.js';
2
- import '../../types/generic.js';
3
2
  import 'react';
4
3
  import 'react-aria-components';
4
+ import '../../types/generic.js';
5
5
 
6
6
  declare const textAreaContainer: string;
7
7
  declare const textAreaColorVars: {
@@ -1,9 +1,9 @@
1
- import { TextAreaProps, BaseTextAreaProps } from './types.js';
1
+ import { BaseTextAreaProps, TextAreaProps as TextAreaProps$1 } from './types.js';
2
2
  import * as react from 'react';
3
- import { ContextValue, TextAreaProps as TextAreaProps$1 } from 'react-aria-components';
3
+ import { TextAreaProps, ContextValue } from 'react-aria-components';
4
4
  import '../../types/generic.js';
5
5
 
6
- declare const TextAreaContext: react.Context<ContextValue<TextAreaProps, HTMLTextAreaElement>>;
6
+ declare const TextAreaContext: react.Context<ContextValue<TextAreaProps$1, HTMLTextAreaElement>>;
7
7
  /**
8
8
  * We implement a textarea as a content editable span to provide
9
9
  * improved UX, where the input area automatically grows with input
@@ -14,6 +14,6 @@ declare const TextAreaContext: react.Context<ContextValue<TextAreaProps, HTMLTex
14
14
  * the ref and event handlers. The normal `event.target.value` is not
15
15
  * available, and must be substituted with `event.currentTarget.textContent`
16
16
  */
17
- declare const TextArea: (props: Omit<TextAreaProps$1, "children" | "className" | "style" | "onChange" | "cols" | "rows"> & BaseTextAreaProps & react.RefAttributes<HTMLTextAreaElement>) => react.ReactElement | null;
17
+ declare const TextArea: (props: Omit<TextAreaProps, "children" | "className" | "style" | "onChange" | "cols" | "rows"> & BaseTextAreaProps & react.RefAttributes<HTMLTextAreaElement>) => react.ReactElement | null;
18
18
 
19
19
  export { TextArea, TextAreaContext };
@@ -3,8 +3,8 @@ import { useFocusRing } from '@react-aria/focus';
3
3
  import { useHover } from '@react-aria/interactions';
4
4
  import { useControlledState } from '@react-stately/utils';
5
5
  import { createContext, forwardRef, useMemo, useCallback, useEffect } from 'react';
6
- import { useContextProps, TextAreaContext as TextAreaContext$1 } from 'react-aria-components';
7
- import { useDefaultProps, useTheme } from '../../hooks/index.js';
6
+ import { TextAreaContext as TextAreaContext$1 } from 'react-aria-components';
7
+ import { useContextProps, useDefaultProps, useTheme } from '../../hooks/index.js';
8
8
  import { inputs } from '../../styles/index.js';
9
9
  import { mergeClassNames, mergeProps, inlineVars } from '../../utils/index.js';
10
10
  import { textAreaClassNames, textAreaStateVars } from './textarea.css.js';
@@ -16,8 +16,8 @@ var defaultMapping = {
16
16
  var TextAreaContext = createContext(null);
17
17
  var TextArea = forwardRef(function TextArea2(props, ref) {
18
18
  [props, ref] = useContextProps(props, ref, TextAreaContext$1);
19
- delete props.className;
20
- delete props.style;
19
+ props.className = void 0;
20
+ props.style = void 0;
21
21
  [props, ref] = useContextProps(props, ref, TextAreaContext);
22
22
  props = useDefaultProps(props, "TextArea");
23
23
  const {
@@ -119,7 +119,7 @@ var TextArea = forwardRef(function TextArea2(props, ref) {
119
119
  ...hoverProps,
120
120
  ref,
121
121
  className: classNames?.textarea,
122
- contentEditable: !isDisabled && !isReadOnly,
122
+ contentEditable: !(isDisabled || isReadOnly),
123
123
  role: "textbox",
124
124
  suppressContentEditableWarning: true,
125
125
  onInput: handleChange,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/textarea/textarea.tsx"],"names":["TextArea","RACTextAreaContext"],"mappings":"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","file":"textarea.js","sourcesContent":["import { useFocusRing } from '@react-aria/focus';\nimport { useHover } from '@react-aria/interactions';\nimport { useControlledState } from '@react-stately/utils';\nimport {\n type FormEvent,\n type ForwardedRef,\n createContext,\n forwardRef,\n useMemo,\n useCallback,\n useEffect,\n} from 'react';\nimport {\n type ContextValue,\n TextAreaContext as RACTextAreaContext,\n type TextAreaProps as RACTextAreaProps,\n useContextProps,\n} from 'react-aria-components';\nimport { useDefaultProps, useTheme } from '../../hooks';\nimport { inputs } from '../../styles';\nimport { inlineVars, mergeClassNames, mergeProps } from '../../utils';\nimport { textAreaClassNames, textAreaStateVars } from './textarea.css';\nimport type { TextAreaMapping, TextAreaProps } from './types';\n\nconst defaultMapping: TextAreaMapping = {\n font: inputs,\n};\n\nexport const TextAreaContext =\n createContext<ContextValue<TextAreaProps, HTMLTextAreaElement>>(null);\n\n/**\n * We implement a textarea as a content editable span to provide\n * improved UX, where the input area automatically grows with input\n * content length. This can be overriden by applying max-height\n * and overflow CSS, if desired.\n *\n * This also has the side effect of changing the target element in\n * the ref and event handlers. The normal `event.target.value` is not\n * available, and must be substituted with `event.currentTarget.textContent`\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps,\n ref: ForwardedRef<HTMLTextAreaElement>,\n) {\n [props, ref] = useContextProps(props, ref, RACTextAreaContext);\n\n // Disallow props possibly provided by React Aria context\n // could be render props functions we don't want to support\n delete (props as RACTextAreaProps).className;\n delete (props as RACTextAreaProps).style;\n\n // Duplicate context prop merging to support React Aria's context\n // and our own which establishes a superset type for the props\n [props, ref] = useContextProps(props, ref, TextAreaContext);\n props = useDefaultProps(props, 'TextArea');\n\n const {\n classNames: classNamesProp,\n defaultValue = '',\n disabled: isDisabled = false,\n mapping: mappingProp,\n placeholder,\n readOnly: isReadOnly = false,\n required: isRequired = false,\n resize = 'none',\n size = 'lg',\n value: valueProp,\n onChange,\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n 'aria-invalid': ariaInvalid,\n ...rest\n } = props;\n\n const [value, setValue] = useControlledState(valueProp, defaultValue);\n const isInvalid = !!ariaInvalid && ariaInvalid !== 'false';\n const isPlaceholder = !!placeholder && !value;\n const isEmpty = !value;\n\n const { isFocused, isFocusVisible, focusProps } = useFocusRing({\n autoFocus: props.autoFocus,\n isTextInput: true,\n });\n\n const { hoverProps, isHovered } = useHover({\n isDisabled,\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n });\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(textAreaClassNames, theme.TextArea, classNamesProp, {\n textarea: mapping.font[size],\n }),\n [theme.TextArea, classNamesProp, mapping.font, size],\n );\n\n const mergedProps = useMemo(\n () => mergeProps(rest, focusProps, hoverProps),\n [focusProps, hoverProps, rest],\n );\n\n const style = useMemo(\n () =>\n inlineVars(textAreaStateVars, {\n resize,\n size,\n isDisabled,\n isEmpty,\n isFocused,\n isFocusVisible,\n isHovered,\n isInvalid,\n isPlaceholder,\n isReadOnly,\n isRequired,\n }),\n [\n resize,\n size,\n isDisabled,\n isEmpty,\n isFocused,\n isFocusVisible,\n isHovered,\n isInvalid,\n isPlaceholder,\n isReadOnly,\n isRequired,\n ],\n );\n\n const handleChange = useCallback(\n (event: FormEvent<HTMLSpanElement>) => {\n onChange?.(event);\n\n if (!event.defaultPrevented) {\n setValue(event.currentTarget.textContent ?? '');\n }\n },\n [onChange, setValue],\n );\n\n /**\n * In order to provide the UX of an \"input\" that auto grows in height\n * thats driven by content, we implement a content-editable span instead\n * of a textarea. However, this has the side effect that it must be\n * updated as an \"uncontrolled\" element, otherwise the cursor resets\n * to the beginning of the input area after every keystroke if the value\n * is passed in as \"children\"\n */\n useEffect(() => {\n if (typeof ref !== 'function' && ref?.current) {\n ref.current.textContent = `${value ?? ''}`;\n }\n }, [ref, value]);\n\n return (\n <div className={classNames?.container} style={style}>\n <span\n {...mergedProps}\n {...hoverProps}\n ref={ref}\n className={classNames?.textarea}\n contentEditable={!isDisabled && !isReadOnly}\n role='textbox'\n suppressContentEditableWarning\n onInput={handleChange}\n aria-invalid={ariaInvalid}\n data-placeholder={placeholder}\n />\n </div>\n );\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/textarea/textarea.tsx"],"names":["TextArea","RACTextAreaContext"],"mappings":";;;;;;;;;;;;AAmCA,IAAM,cAAkC,GAAA;AAAA,EACtC,IAAM,EAAA;AACR,CAAA;AAEa,IAAA,eAAA,GACX,cAAgE,IAAI;AAY/D,IAAM,QAAW,GAAA,UAAA,CAAW,SAASA,SAAAA,CAC1C,OACA,GACA,EAAA;AACA,EAAA,CAAC,OAAO,GAAG,CAAA,GAAI,eAAgB,CAAA,KAAA,EAAO,KAAKC,iBAAkB,CAAA;AAI7D,EAAC,MAA2B,SAAY,GAAA,MAAA;AACxC,EAAC,MAA2B,KAAQ,GAAA,MAAA;AAIpC,EAAA,CAAC,OAAO,GAAG,CAAA,GAAI,eAAgB,CAAA,KAAA,EAAO,KAAK,eAAe,CAAA;AAC1D,EAAQ,KAAA,GAAA,eAAA,CAAgB,OAAO,UAAU,CAAA;AAEzC,EAAM,MAAA;AAAA,IACJ,UAAY,EAAA,cAAA;AAAA,IACZ,YAAe,GAAA,EAAA;AAAA,IACf,UAAU,UAAa,GAAA,KAAA;AAAA,IACvB,OAAS,EAAA,WAAA;AAAA,IACT,WAAA;AAAA,IACA,UAAU,UAAa,GAAA,KAAA;AAAA,IACvB,UAAU,UAAa,GAAA,KAAA;AAAA,IACvB,MAAS,GAAA,MAAA;AAAA,IACT,IAAO,GAAA,IAAA;AAAA,IACP,KAAO,EAAA,SAAA;AAAA,IACP,QAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAgB,EAAA,WAAA;AAAA,IAChB,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,kBAAA,CAAmB,WAAW,YAAY,CAAA;AACpE,EAAA,MAAM,SAAY,GAAA,CAAC,CAAC,WAAA,IAAe,WAAgB,KAAA,OAAA;AACnD,EAAA,MAAM,aAAgB,GAAA,CAAC,CAAC,WAAA,IAAe,CAAC,KAAA;AACxC,EAAA,MAAM,UAAU,CAAC,KAAA;AAEjB,EAAA,MAAM,EAAE,SAAA,EAAW,cAAgB,EAAA,UAAA,KAAe,YAAa,CAAA;AAAA,IAC7D,WAAW,KAAM,CAAA,SAAA;AAAA,IACjB,WAAa,EAAA;AAAA,GACd,CAAA;AAED,EAAA,MAAM,EAAE,UAAA,EAAY,SAAU,EAAA,GAAI,QAAS,CAAA;AAAA,IACzC,UAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,QAAQ,QAAS,EAAA;AAEvB,EAAA,MAAM,OAAU,GAAA,OAAA;AAAA,IACd,OAAO;AAAA,MACL,GAAG,cAAA;AAAA,MACH,GAAG;AAAA,KACL,CAAA;AAAA,IACA,CAAC,WAAW;AAAA,GACd;AAEA,EAAA,MAAM,UAAa,GAAA,OAAA;AAAA,IACjB,MACE,eAAA,CAAgB,kBAAoB,EAAA,KAAA,CAAM,UAAU,cAAgB,EAAA;AAAA,MAClE,QAAA,EAAU,OAAQ,CAAA,IAAA,CAAK,IAAI;AAAA,KAC5B,CAAA;AAAA,IACH,CAAC,KAAM,CAAA,QAAA,EAAU,cAAgB,EAAA,OAAA,CAAQ,MAAM,IAAI;AAAA,GACrD;AAEA,EAAA,MAAM,WAAc,GAAA,OAAA;AAAA,IAClB,MAAM,UAAA,CAAW,IAAM,EAAA,UAAA,EAAY,UAAU,CAAA;AAAA,IAC7C,CAAC,UAAY,EAAA,UAAA,EAAY,IAAI;AAAA,GAC/B;AAEA,EAAA,MAAM,KAAQ,GAAA,OAAA;AAAA,IACZ,MACE,WAAW,iBAAmB,EAAA;AAAA,MAC5B,MAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA,UAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,IACH;AAAA,MACE,MAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA,UAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,MAAM,YAAe,GAAA,WAAA;AAAA,IACnB,CAAC,KAAsC,KAAA;AACrC,MAAA,QAAA,GAAW,KAAK,CAAA;AAEhB,MAAI,IAAA,CAAC,MAAM,gBAAkB,EAAA;AAC3B,QAAS,QAAA,CAAA,KAAA,CAAM,aAAc,CAAA,WAAA,IAAe,EAAE,CAAA;AAAA;AAChD,KACF;AAAA,IACA,CAAC,UAAU,QAAQ;AAAA,GACrB;AAUA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,OAAO,GAAA,KAAQ,UAAc,IAAA,GAAA,EAAK,OAAS,EAAA;AAC7C,MAAA,GAAA,CAAI,OAAQ,CAAA,WAAA,GAAc,CAAG,EAAA,KAAA,IAAS,EAAE,CAAA,CAAA;AAAA;AAC1C,GACC,EAAA,CAAC,GAAK,EAAA,KAAK,CAAC,CAAA;AAEf,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,UAAA,EAAY,WAAW,KAErC,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACE,GAAG,WAAA;AAAA,MACH,GAAG,UAAA;AAAA,MACJ,GAAA;AAAA,MACA,WAAW,UAAY,EAAA,QAAA;AAAA,MACvB,eAAA,EAAiB,EAAE,UAAc,IAAA,UAAA,CAAA;AAAA,MACjC,IAAK,EAAA,SAAA;AAAA,MACL,8BAA8B,EAAA,IAAA;AAAA,MAC9B,OAAS,EAAA,YAAA;AAAA,MACT,cAAc,EAAA,WAAA;AAAA,MACd,kBAAkB,EAAA;AAAA;AAAA,GAEtB,EAAA,CAAA;AAEJ,CAAC","file":"textarea.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useFocusRing } from '@react-aria/focus';\nimport { useHover } from '@react-aria/interactions';\nimport { useControlledState } from '@react-stately/utils';\nimport {\n type FormEvent,\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n TextAreaContext as RACTextAreaContext,\n type TextAreaProps as RACTextAreaProps,\n} from 'react-aria-components';\nimport { useContextProps, useDefaultProps, useTheme } from '../../hooks';\nimport { inputs } from '../../styles';\nimport { inlineVars, mergeClassNames, mergeProps } from '../../utils';\nimport { textAreaClassNames, textAreaStateVars } from './textarea.css';\nimport type { TextAreaMapping, TextAreaProps } from './types';\n\nconst defaultMapping: TextAreaMapping = {\n font: inputs,\n};\n\nexport const TextAreaContext =\n createContext<ContextValue<TextAreaProps, HTMLTextAreaElement>>(null);\n\n/**\n * We implement a textarea as a content editable span to provide\n * improved UX, where the input area automatically grows with input\n * content length. This can be overriden by applying max-height\n * and overflow CSS, if desired.\n *\n * This also has the side effect of changing the target element in\n * the ref and event handlers. The normal `event.target.value` is not\n * available, and must be substituted with `event.currentTarget.textContent`\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps,\n ref: ForwardedRef<HTMLTextAreaElement>,\n) {\n [props, ref] = useContextProps(props, ref, RACTextAreaContext);\n\n // Disallow props possibly provided by React Aria context\n // could be render props functions we don't want to support\n (props as RACTextAreaProps).className = undefined;\n (props as RACTextAreaProps).style = undefined;\n\n // Duplicate context prop merging to support React Aria's context\n // and our own which establishes a superset type for the props\n [props, ref] = useContextProps(props, ref, TextAreaContext);\n props = useDefaultProps(props, 'TextArea');\n\n const {\n classNames: classNamesProp,\n defaultValue = '',\n disabled: isDisabled = false,\n mapping: mappingProp,\n placeholder,\n readOnly: isReadOnly = false,\n required: isRequired = false,\n resize = 'none',\n size = 'lg',\n value: valueProp,\n onChange,\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n 'aria-invalid': ariaInvalid,\n ...rest\n } = props;\n\n const [value, setValue] = useControlledState(valueProp, defaultValue);\n const isInvalid = !!ariaInvalid && ariaInvalid !== 'false';\n const isPlaceholder = !!placeholder && !value;\n const isEmpty = !value;\n\n const { isFocused, isFocusVisible, focusProps } = useFocusRing({\n autoFocus: props.autoFocus,\n isTextInput: true,\n });\n\n const { hoverProps, isHovered } = useHover({\n isDisabled,\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n });\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(textAreaClassNames, theme.TextArea, classNamesProp, {\n textarea: mapping.font[size],\n }),\n [theme.TextArea, classNamesProp, mapping.font, size],\n );\n\n const mergedProps = useMemo(\n () => mergeProps(rest, focusProps, hoverProps),\n [focusProps, hoverProps, rest],\n );\n\n const style = useMemo(\n () =>\n inlineVars(textAreaStateVars, {\n resize,\n size,\n isDisabled,\n isEmpty,\n isFocused,\n isFocusVisible,\n isHovered,\n isInvalid,\n isPlaceholder,\n isReadOnly,\n isRequired,\n }),\n [\n resize,\n size,\n isDisabled,\n isEmpty,\n isFocused,\n isFocusVisible,\n isHovered,\n isInvalid,\n isPlaceholder,\n isReadOnly,\n isRequired,\n ],\n );\n\n const handleChange = useCallback(\n (event: FormEvent<HTMLSpanElement>) => {\n onChange?.(event);\n\n if (!event.defaultPrevented) {\n setValue(event.currentTarget.textContent ?? '');\n }\n },\n [onChange, setValue],\n );\n\n /**\n * In order to provide the UX of an \"input\" that auto grows in height\n * thats driven by content, we implement a content-editable span instead\n * of a textarea. However, this has the side effect that it must be\n * updated as an \"uncontrolled\" element, otherwise the cursor resets\n * to the beginning of the input area after every keystroke if the value\n * is passed in as \"children\"\n */\n useEffect(() => {\n if (typeof ref !== 'function' && ref?.current) {\n ref.current.textContent = `${value ?? ''}`;\n }\n }, [ref, value]);\n\n return (\n <div className={classNames?.container} style={style}>\n {/* biome-ignore lint/a11y/useFocusableInteractive: TODO: refactor */}\n <span\n {...mergedProps}\n {...hoverProps}\n ref={ref}\n className={classNames?.textarea}\n contentEditable={!(isDisabled || isReadOnly)}\n role='textbox'\n suppressContentEditableWarning\n onInput={handleChange}\n aria-invalid={ariaInvalid}\n data-placeholder={placeholder}\n />\n </div>\n );\n});\n"]}
@@ -1,6 +1,6 @@
1
- import { AsType } from '../../types/generic.js';
2
1
  import { FormEventHandler } from 'react';
3
- import { InputRenderProps, TextAreaProps as TextAreaProps$1 } from 'react-aria-components';
2
+ import { TextAreaProps as TextAreaProps$1, InputRenderProps } from 'react-aria-components';
3
+ import { AsType } from '../../types/generic.js';
4
4
 
5
5
  type TextAreaClassNames = Partial<{
6
6
  container: string;
@@ -2,7 +2,7 @@ import * as react from 'react';
2
2
  import * as react_aria_components from 'react-aria-components';
3
3
  import { ContextValue } from 'react-aria-components';
4
4
  import { RenderPropsChildren } from '../../types/react-aria.js';
5
- import { TooltipProps, TooltipClassNames, TooltipMapping, TooltipRenderProps, TooltipTargetProps } from './types.js';
5
+ import { TooltipClassNames, TooltipMapping, TooltipRenderProps, TooltipProps, TooltipTargetProps } from './types.js';
6
6
  import 'type-fest';
7
7
 
8
8
  declare const TooltipContext: react.Context<ContextValue<TooltipProps, HTMLDivElement>>;
@@ -1,8 +1,8 @@
1
1
  import '../../chunk-PZ5AY32C.js';
2
- import { createContext, forwardRef, useMemo, useCallback } from 'react';
3
2
  import { useFocusable } from '@react-aria/focus';
4
- import { useContextProps, Tooltip as Tooltip$1 } from 'react-aria-components';
5
- import { useDefaultProps, useTheme } from '../../hooks/index.js';
3
+ import { createContext, forwardRef, useMemo, useCallback } from 'react';
4
+ import { Tooltip as Tooltip$1 } from 'react-aria-components';
5
+ import { useContextProps, useDefaultProps, useTheme } from '../../hooks/index.js';
6
6
  import { bodies } from '../../styles/index.js';
7
7
  import { mergeClassNames, inlineVars, callRenderProps } from '../../utils/index.js';
8
8
  import { tooltipClassNames, tooltipStateVars, tooltipTargetStateVars } from './tooltip.css.js';