@revikornmann/muka-ui 0.24.0 → 0.26.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 (106) hide show
  1. package/dist/cjs/components/Autocomplete/Autocomplete.css +63 -0
  2. package/dist/cjs/components/Autocomplete/Autocomplete.js +190 -0
  3. package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -0
  4. package/dist/cjs/components/Autocomplete/index.js +6 -0
  5. package/dist/cjs/components/Autocomplete/index.js.map +1 -0
  6. package/dist/cjs/components/Combobox/Combobox.js +16 -24
  7. package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
  8. package/dist/cjs/components/ContextSelect/ContextSelect.js +2 -2
  9. package/dist/cjs/components/ContextSelect/ContextSelect.js.map +1 -1
  10. package/dist/cjs/components/Dialog/Dialog.js +25 -9
  11. package/dist/cjs/components/Dialog/Dialog.js.map +1 -1
  12. package/dist/cjs/components/DropdownSelect/DropdownSelect.js +2 -2
  13. package/dist/cjs/components/DropdownSelect/DropdownSelect.js.map +1 -1
  14. package/dist/cjs/components/InputCounter/InputCounter.css +175 -0
  15. package/dist/cjs/components/InputCounter/InputCounter.js +196 -0
  16. package/dist/cjs/components/InputCounter/InputCounter.js.map +1 -0
  17. package/dist/cjs/components/InputCounter/index.js +11 -0
  18. package/dist/cjs/components/InputCounter/index.js.map +1 -0
  19. package/dist/cjs/components/Menu/Menu.js +26 -11
  20. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  21. package/dist/cjs/components/PhotoUploader/PhotoUploader.js +1 -1
  22. package/dist/cjs/components/Popover/Popover.js +10 -8
  23. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  24. package/dist/cjs/components/Tooltip/Tooltip.js +7 -2
  25. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  26. package/dist/cjs/components/TopBar/TopBar.css +29 -0
  27. package/dist/cjs/components/View/View.js +33 -1
  28. package/dist/cjs/components/View/View.js.map +1 -1
  29. package/dist/cjs/components/index.js +7 -3
  30. package/dist/cjs/components/index.js.map +1 -1
  31. package/dist/cjs/utils/suggestionList.js +27 -0
  32. package/dist/cjs/utils/suggestionList.js.map +1 -0
  33. package/dist/cjs/utils/usePortalContainer.js +33 -0
  34. package/dist/cjs/utils/usePortalContainer.js.map +1 -0
  35. package/dist/esm/components/Autocomplete/Autocomplete.css +63 -0
  36. package/dist/esm/components/Autocomplete/Autocomplete.js +187 -0
  37. package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -0
  38. package/dist/esm/components/Autocomplete/index.js +2 -0
  39. package/dist/esm/components/Autocomplete/index.js.map +1 -0
  40. package/dist/esm/components/Combobox/Combobox.js +14 -22
  41. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  42. package/dist/esm/components/ContextSelect/ContextSelect.js +2 -2
  43. package/dist/esm/components/ContextSelect/ContextSelect.js.map +1 -1
  44. package/dist/esm/components/Dialog/Dialog.js +25 -9
  45. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  46. package/dist/esm/components/DropdownSelect/DropdownSelect.js +2 -2
  47. package/dist/esm/components/DropdownSelect/DropdownSelect.js.map +1 -1
  48. package/dist/esm/components/InputCounter/InputCounter.css +175 -0
  49. package/dist/esm/components/InputCounter/InputCounter.js +160 -0
  50. package/dist/esm/components/InputCounter/InputCounter.js.map +1 -0
  51. package/dist/esm/components/InputCounter/index.js +3 -0
  52. package/dist/esm/components/InputCounter/index.js.map +1 -0
  53. package/dist/esm/components/Menu/Menu.js +26 -11
  54. package/dist/esm/components/Menu/Menu.js.map +1 -1
  55. package/dist/esm/components/PhotoUploader/PhotoUploader.js +1 -1
  56. package/dist/esm/components/Popover/Popover.js +10 -5
  57. package/dist/esm/components/Popover/Popover.js.map +1 -1
  58. package/dist/esm/components/Tooltip/Tooltip.js +7 -2
  59. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  60. package/dist/esm/components/TopBar/TopBar.css +29 -0
  61. package/dist/esm/components/View/View.js +30 -1
  62. package/dist/esm/components/View/View.js.map +1 -1
  63. package/dist/esm/components/index.js +2 -0
  64. package/dist/esm/components/index.js.map +1 -1
  65. package/dist/esm/utils/suggestionList.js +22 -0
  66. package/dist/esm/utils/suggestionList.js.map +1 -0
  67. package/dist/esm/utils/usePortalContainer.js +29 -0
  68. package/dist/esm/utils/usePortalContainer.js.map +1 -0
  69. package/dist/styles/components/Autocomplete.css +63 -0
  70. package/dist/styles/components/InputCounter.css +175 -0
  71. package/dist/styles/index.css +5910 -5666
  72. package/dist/styles/muka-dark.css +5910 -5666
  73. package/dist/styles/muka-light.css +5910 -5666
  74. package/dist/styles/wireframe-dark.css +5910 -5666
  75. package/dist/styles/wireframe-light.css +5910 -5666
  76. package/dist/types/components/Autocomplete/Autocomplete.d.ts +105 -0
  77. package/dist/types/components/Autocomplete/Autocomplete.d.ts.map +1 -0
  78. package/dist/types/components/Autocomplete/index.d.ts +2 -0
  79. package/dist/types/components/Autocomplete/index.d.ts.map +1 -0
  80. package/dist/types/components/Combobox/Combobox.d.ts +8 -2
  81. package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
  82. package/dist/types/components/ContextSelect/ContextSelect.d.ts +6 -0
  83. package/dist/types/components/ContextSelect/ContextSelect.d.ts.map +1 -1
  84. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -1
  85. package/dist/types/components/DropdownSelect/DropdownSelect.d.ts +6 -0
  86. package/dist/types/components/DropdownSelect/DropdownSelect.d.ts.map +1 -1
  87. package/dist/types/components/InputCounter/InputCounter.d.ts +79 -0
  88. package/dist/types/components/InputCounter/InputCounter.d.ts.map +1 -0
  89. package/dist/types/components/InputCounter/index.d.ts +3 -0
  90. package/dist/types/components/InputCounter/index.d.ts.map +1 -0
  91. package/dist/types/components/Menu/Menu.d.ts +4 -4
  92. package/dist/types/components/Menu/Menu.d.ts.map +1 -1
  93. package/dist/types/components/Popover/Popover.d.ts +12 -0
  94. package/dist/types/components/Popover/Popover.d.ts.map +1 -1
  95. package/dist/types/components/Tooltip/Tooltip.d.ts +6 -0
  96. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  97. package/dist/types/components/View/View.d.ts +3 -0
  98. package/dist/types/components/View/View.d.ts.map +1 -1
  99. package/dist/types/components/index.d.ts +2 -0
  100. package/dist/types/components/index.d.ts.map +1 -1
  101. package/dist/types/utils/suggestionList.d.ts +13 -0
  102. package/dist/types/utils/suggestionList.d.ts.map +1 -0
  103. package/dist/types/utils/usePortalContainer.d.ts +19 -0
  104. package/dist/types/utils/usePortalContainer.d.ts.map +1 -0
  105. package/docs/consumers/README.md +2 -2
  106. package/package.json +1 -1
@@ -18,7 +18,7 @@ require("./DropdownSelect.css");
18
18
  * Not the native `<Select>` — use that for simple platform-native fields.
19
19
  * Not free-text — use `Combobox` for creatable chip input.
20
20
  */
21
- const DropdownSelect = ({ options, value, onValueChange, multiple = false, placeholder = 'Select item...', label, helperText, error = false, errorMessage, disabled = false, size = 'md', fullWidth = false, required = false, searchable = true, searchPlaceholder = 'Search', scrollbar = false, open: openProp, onOpenChange, defaultOpen, name, id, 'aria-label': ariaLabel, className = '', }) => {
21
+ const DropdownSelect = ({ options, value, onValueChange, multiple = false, placeholder = 'Select item...', label, helperText, error = false, errorMessage, disabled = false, size = 'md', fullWidth = false, required = false, searchable = true, searchPlaceholder = 'Search', scrollbar = false, open: openProp, onOpenChange, defaultOpen, name, id, 'aria-label': ariaLabel, className = '', portalContainer, }) => {
22
22
  const generatedId = (0, react_1.useId)();
23
23
  const fieldId = id || name || generatedId;
24
24
  const helperTextId = `${fieldId}-helper`;
@@ -97,7 +97,7 @@ const DropdownSelect = ({ options, value, onValueChange, multiple = false, place
97
97
  e.preventDefault();
98
98
  e.stopPropagation();
99
99
  removeValue(option.value);
100
- }, children: option.label }, option.value))) })) : ((0, jsx_runtime_1.jsx)("span", { className: "muka-dropdown-select__value", children: selectedOptions[0].label })) })] }), (0, jsx_runtime_1.jsxs)(Menu_1.MenuContent, { align: "start", side: "bottom", sideOffset: 4, searchable: searchable, scrollbar: scrollbar, className: "muka-dropdown-select__menu", style: menuWidth && menuWidth > 280
100
+ }, children: option.label }, option.value))) })) : ((0, jsx_runtime_1.jsx)("span", { className: "muka-dropdown-select__value", children: selectedOptions[0].label })) })] }), (0, jsx_runtime_1.jsxs)(Menu_1.MenuContent, { align: "start", side: "bottom", sideOffset: 4, searchable: searchable, scrollbar: scrollbar, className: "muka-dropdown-select__menu", container: portalContainer, style: menuWidth && menuWidth > 280
101
101
  ? { minWidth: menuWidth }
102
102
  : undefined, onCloseAutoFocus: (event) => event.preventDefault(), children: [searchable && ((0, jsx_runtime_1.jsx)(Menu_1.MenuSearch, { placeholder: searchPlaceholder, size: size === 'sm' ? 'sm' : 'md' })), multiple ? (options.map((option) => ((0, jsx_runtime_1.jsx)(Menu_1.MenuCheckboxItem, { checked: selectedSet.has(option.value), onCheckedChange: (checked) => toggleMulti(option.value, checked), disabled: option.disabled, indicator: "trailing", textValue: option.label, children: option.label }, option.value)))) : ((0, jsx_runtime_1.jsx)(Menu_1.MenuRadioGroup, { value: singleValue, onValueChange: (next) => onValueChange?.(next), children: options.map((option) => ((0, jsx_runtime_1.jsx)(Menu_1.MenuRadioItem, { value: option.value, disabled: option.disabled, indicator: "check", textValue: option.label, children: option.label }, option.value))) }))] })] }), showError && ((0, jsx_runtime_1.jsx)("p", { className: "muka-dropdown-select__error", id: errorMessageId, role: "alert", children: errorMessage })), !showError && helperText && ((0, jsx_runtime_1.jsx)("p", { className: "muka-dropdown-select__helper", id: helperTextId, children: helperText }))] }));
103
103
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownSelect.js","sourceRoot":"","sources":["../../../../components/DropdownSelect/DropdownSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DropdownSelect.js","sourceRoot":"","sources":["../../../../components/DropdownSelect/DropdownSelect.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ /* InputCounter — numeric field + joined decrement/increment buttons.
2
+ Label, helper and error text reuse Input.css (../Input/Input.css).
3
+ Field and button group share one radius per size:
4
+ sm/md → input.field.radius.md, lg → input.field.radius.lg. */
5
+
6
+ .muka-inputcounter {
7
+ --muka-inputcounter-radius: var(--input-field-radius-md);
8
+ --muka-inputcounter-height: var(--input-field-height-default);
9
+ --muka-inputcounter-pad: calc(var(--spacing-2) + var(--spacing-1));
10
+ --muka-inputcounter-min: var(--size-3xl);
11
+
12
+ display: inline-flex;
13
+ flex-direction: column;
14
+ gap: var(--spacing-2);
15
+ }
16
+
17
+ .muka-inputcounter--sm {
18
+ --muka-inputcounter-height: var(--input-field-height-sm);
19
+ --muka-inputcounter-pad: calc(var(--spacing-1) + var(--spacing-1));
20
+ --muka-inputcounter-min: var(--size-2xl);
21
+ }
22
+
23
+ .muka-inputcounter--lg {
24
+ --muka-inputcounter-radius: var(--input-field-radius-lg);
25
+ --muka-inputcounter-height: var(--input-field-height-lg);
26
+ }
27
+
28
+ /* Label row — label, info tooltip trigger, optional hint */
29
+ .muka-inputcounter__label-row {
30
+ display: flex;
31
+ align-items: center;
32
+ gap: var(--spacing-2);
33
+ min-height: var(--size-xl);
34
+ }
35
+
36
+ .muka-inputcounter__info {
37
+ display: inline-flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ padding: 0;
41
+ border: none;
42
+ border-radius: 50%;
43
+ background: transparent;
44
+ cursor: pointer;
45
+ }
46
+
47
+ .muka-inputcounter__info .muka-icon {
48
+ color: var(--color-action-default);
49
+ }
50
+
51
+ .muka-inputcounter__info:focus-visible {
52
+ outline: 2px solid var(--color-border-focus);
53
+ outline-offset: 2px;
54
+ }
55
+
56
+ .muka-inputcounter__optional {
57
+ font-family: var(--text-label-sm-regular-fontFamily);
58
+ font-weight: var(--text-label-sm-regular-fontWeight);
59
+ font-size: var(--text-label-sm-regular-fontSize);
60
+ line-height: var(--text-label-sm-regular-lineHeight);
61
+ color: var(--color-text-subtle-default);
62
+ }
63
+
64
+ /* Field + button group */
65
+ .muka-inputcounter__row {
66
+ display: flex;
67
+ align-items: center;
68
+ gap: var(--spacing-3);
69
+ }
70
+
71
+ /* Field — grows with the value (in ch), never narrower than the Figma width.
72
+ Padding sits on the native input so the 2px focus/error border doesn't
73
+ need compensating: content is centred in a fixed box. */
74
+ .muka-inputcounter__field {
75
+ position: relative;
76
+ display: flex;
77
+ align-items: center;
78
+ box-sizing: border-box;
79
+ height: var(--muka-inputcounter-height);
80
+ width: calc(
81
+ max(var(--muka-inputcounter-min), calc(var(--muka-inputcounter-chars, 1) * 1ch)) +
82
+ 2 * var(--muka-inputcounter-pad) + 2 * var(--border-width-regular)
83
+ );
84
+ background-color: var(--input-field-color-default-background);
85
+ border: var(--border-width-regular) solid var(--input-field-color-default-border);
86
+ border-radius: var(--muka-inputcounter-radius);
87
+ transition: border-color 0.2s ease, background-color 0.2s ease;
88
+ }
89
+
90
+ .muka-inputcounter__field::after {
91
+ content: '';
92
+ position: absolute;
93
+ inset: 0;
94
+ border-radius: inherit;
95
+ box-shadow: var(--shadow-sunken);
96
+ pointer-events: none;
97
+ }
98
+
99
+ .muka-inputcounter__field--focused:not(.muka-inputcounter__field--disabled) {
100
+ border-width: var(--border-width-bold);
101
+ border-color: var(--input-field-color-focus-border);
102
+ background-color: var(--input-field-color-focus-background);
103
+ }
104
+
105
+ .muka-inputcounter__field--error:not(.muka-inputcounter__field--disabled) {
106
+ border-width: var(--border-width-bold);
107
+ border-color: var(--input-field-color-error-border);
108
+ background-color: var(--input-field-color-error-background);
109
+ }
110
+
111
+ .muka-inputcounter__field--disabled {
112
+ background-color: var(--input-field-color-disabled-background);
113
+ border-color: var(--input-field-color-disabled-border);
114
+ }
115
+
116
+ .muka-inputcounter__field--disabled::after {
117
+ display: none;
118
+ }
119
+
120
+ .muka-inputcounter__native {
121
+ width: 100%;
122
+ min-width: 0;
123
+ height: 100%;
124
+ box-sizing: border-box;
125
+ padding: 0 calc(var(--muka-inputcounter-pad) - var(--border-width-regular));
126
+ border: none;
127
+ outline: none;
128
+ background: transparent;
129
+ text-align: center;
130
+ font-variant-numeric: tabular-nums;
131
+ color: var(--input-field-color-default-foreground);
132
+ font-family: var(--text-input-md-fontFamily);
133
+ font-weight: var(--text-input-md-fontWeight);
134
+ font-size: var(--text-input-md-fontSize);
135
+ line-height: var(--text-input-md-lineHeight);
136
+ }
137
+
138
+ .muka-inputcounter--sm .muka-inputcounter__native {
139
+ font-family: var(--text-input-sm-fontFamily);
140
+ font-weight: var(--text-input-sm-fontWeight);
141
+ font-size: var(--text-input-sm-fontSize);
142
+ line-height: var(--text-input-sm-lineHeight);
143
+ }
144
+
145
+ .muka-inputcounter__field--disabled .muka-inputcounter__native {
146
+ color: var(--input-field-color-disabled-foreground);
147
+ cursor: not-allowed;
148
+ }
149
+
150
+ /* Button group — secondary icon-only Buttons joined by a divider.
151
+ Only the outer corners are rounded. */
152
+ .muka-inputcounter__group {
153
+ display: inline-flex;
154
+ align-items: stretch;
155
+ }
156
+
157
+ .muka-inputcounter__group .muka-button {
158
+ border-radius: 0;
159
+ }
160
+
161
+ .muka-inputcounter__group .muka-button:first-child {
162
+ border-start-start-radius: var(--muka-inputcounter-radius);
163
+ border-end-start-radius: var(--muka-inputcounter-radius);
164
+ }
165
+
166
+ .muka-inputcounter__group .muka-button:last-child {
167
+ border-start-end-radius: var(--muka-inputcounter-radius);
168
+ border-end-end-radius: var(--muka-inputcounter-radius);
169
+ }
170
+
171
+ .muka-inputcounter__divider {
172
+ flex: none;
173
+ width: var(--border-width-regular);
174
+ background-color: var(--color-border-default);
175
+ }
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ 'use client';
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.InputCounter = void 0;
38
+ const jsx_runtime_1 = require("react/jsx-runtime");
39
+ const react_1 = __importStar(require("react"));
40
+ const react_2 = require("@remixicon/react");
41
+ const accessibility_1 = require("../../utils/accessibility");
42
+ const Button_1 = require("../Button");
43
+ const Icon_1 = require("../Icon");
44
+ const Tooltip_1 = require("../Tooltip");
45
+ require("../Input/Input.css");
46
+ require("./InputCounter.css");
47
+ const decimalsOf = (n) => {
48
+ const [, fraction = ''] = String(n).split('.');
49
+ return fraction.length;
50
+ };
51
+ const BUTTON_ICON_SIZE = { sm: 'xs', md: 'sm', lg: 'md' };
52
+ /**
53
+ * InputCounter Component
54
+ *
55
+ * A compact numeric field with joined decrement/increment buttons, for small
56
+ * whole quantities (amounts, guests, items). Follows the WAI-ARIA spinbutton
57
+ * pattern: the field is the single tab stop and owns the keyboard; the buttons
58
+ * are pointer shortcuts.
59
+ *
60
+ * Tokens used:
61
+ * - input.field.color.{state}.{background|foreground|border}
62
+ * - input.field.radius.{md|lg} / input.field.height.{size}
63
+ * - button.color.secondary.* (via Button)
64
+ * - shadow.sunken / color.border.default
65
+ * - text.input.{size} / text.label.md.semibold / text.label.sm.regular
66
+ *
67
+ * @see https://www.w3.org/WAI/ARIA/apg/patterns/spinbutton/
68
+ */
69
+ exports.InputCounter = react_1.default.forwardRef(function InputCounter({ value, defaultValue, onChange, min, max, step = 1, label, optional = false, optionalText = 'Optional', tooltip, tooltipLabel = 'More information', helperText, error = false, errorMessage, disabled = false, readOnly = false, required = false, size = 'md', decrementLabel = 'Decrease', incrementLabel = 'Increase', className = '', id, name, onBlur, onFocus, onKeyDown, inputMode, 'aria-describedby': ariaDescribedBy, 'aria-invalid': ariaInvalid, ...rest }, forwardedRef) {
70
+ const isControlled = value !== undefined;
71
+ const [internalValue, setInternalValue] = (0, react_1.useState)(() => defaultValue ?? min ?? 0);
72
+ // Text being typed; null when the field shows the committed value.
73
+ const [draft, setDraft] = (0, react_1.useState)(null);
74
+ const [isFocused, setIsFocused] = (0, react_1.useState)(false);
75
+ const inputRef = (0, react_1.useRef)(null);
76
+ const generatedId = (0, react_1.useId)();
77
+ const inputId = id || name || generatedId;
78
+ const helperTextId = `${inputId}-helper`;
79
+ const errorMessageId = `${inputId}-error`;
80
+ const current = isControlled ? value : internalValue;
81
+ const display = draft ?? String(current);
82
+ const interactive = !disabled && !readOnly;
83
+ const canDecrement = interactive && (min === undefined || current > min);
84
+ const canIncrement = interactive && (max === undefined || current < max);
85
+ const showError = error && errorMessage;
86
+ const describedBy = (0, accessibility_1.mergeIds)(ariaDescribedBy, showError ? errorMessageId : helperText ? helperTextId : undefined);
87
+ /** Snap to the step grid (anchored at min) and clamp to min/max. */
88
+ const normalize = (n) => {
89
+ const base = min ?? 0;
90
+ const precision = Math.max(decimalsOf(step), decimalsOf(base));
91
+ let next = base + Math.round((n - base) / step) * step;
92
+ next = Number(next.toFixed(precision));
93
+ if (max !== undefined && next > max)
94
+ next = max;
95
+ if (min !== undefined && next < min)
96
+ next = min;
97
+ return next;
98
+ };
99
+ const commit = (n) => {
100
+ const next = normalize(n);
101
+ setDraft(null);
102
+ if (!isControlled)
103
+ setInternalValue(next);
104
+ if (next !== current)
105
+ onChange?.(next);
106
+ };
107
+ /** Value to step from: a typed-but-uncommitted draft wins over the prop. */
108
+ const base = () => {
109
+ if (draft === null)
110
+ return current;
111
+ const parsed = Number(draft.replace(',', '.'));
112
+ return draft.trim() !== '' && Number.isFinite(parsed) ? parsed : current;
113
+ };
114
+ const stepBy = (multiplier) => commit(base() + step * multiplier);
115
+ const commitDraft = () => {
116
+ if (draft === null)
117
+ return;
118
+ const parsed = Number(draft.replace(',', '.'));
119
+ if (draft.trim() === '' || !Number.isFinite(parsed)) {
120
+ setDraft(null);
121
+ return;
122
+ }
123
+ commit(parsed);
124
+ };
125
+ const handleKeyDown = (e) => {
126
+ onKeyDown?.(e);
127
+ if (e.defaultPrevented || !interactive)
128
+ return;
129
+ switch (e.key) {
130
+ case 'ArrowUp':
131
+ stepBy(1);
132
+ break;
133
+ case 'ArrowDown':
134
+ stepBy(-1);
135
+ break;
136
+ case 'PageUp':
137
+ stepBy(10);
138
+ break;
139
+ case 'PageDown':
140
+ stepBy(-10);
141
+ break;
142
+ case 'Home':
143
+ if (min === undefined)
144
+ return;
145
+ commit(min);
146
+ break;
147
+ case 'End':
148
+ if (max === undefined)
149
+ return;
150
+ commit(max);
151
+ break;
152
+ case 'Enter':
153
+ commitDraft();
154
+ return; // let Enter still submit a surrounding form
155
+ default:
156
+ return;
157
+ }
158
+ e.preventDefault();
159
+ };
160
+ // Keep focus where it is — pressing a button must not blur the field
161
+ // (which would commit a half-typed draft mid-click).
162
+ const keepFocus = (e) => e.preventDefault();
163
+ const wrapperClasses = [
164
+ 'muka-inputcounter',
165
+ `muka-inputcounter--${size}`,
166
+ className,
167
+ ].filter(Boolean).join(' ');
168
+ const fieldClasses = [
169
+ 'muka-inputcounter__field',
170
+ isFocused && 'muka-inputcounter__field--focused',
171
+ error && 'muka-inputcounter__field--error',
172
+ disabled && 'muka-inputcounter__field--disabled',
173
+ ].filter(Boolean).join(' ');
174
+ const hasLabelRow = Boolean(label);
175
+ return ((0, jsx_runtime_1.jsxs)("div", { className: wrapperClasses, children: [hasLabelRow && ((0, jsx_runtime_1.jsxs)("div", { className: "muka-inputcounter__label-row", children: [(0, jsx_runtime_1.jsxs)("label", { className: "muka-input__label muka-input__label--md", htmlFor: inputId, children: [label, required && (0, jsx_runtime_1.jsx)("span", { className: "muka-input__required", "aria-hidden": "true", children: " *" })] }), tooltip && ((0, jsx_runtime_1.jsx)(Tooltip_1.Tooltip, { content: tooltip, children: (0, jsx_runtime_1.jsx)("button", { type: "button", className: "muka-inputcounter__info", "aria-label": tooltipLabel, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "information", variant: "line", size: "md" }) }) })), optional && !required && ((0, jsx_runtime_1.jsx)("span", { className: "muka-inputcounter__optional", children: optionalText }))] })), (0, jsx_runtime_1.jsxs)("div", { className: "muka-inputcounter__row", children: [(0, jsx_runtime_1.jsx)("div", { className: fieldClasses, style: { '--muka-inputcounter-chars': display.length }, children: (0, jsx_runtime_1.jsx)("input", { ...rest, ref: (node) => {
176
+ inputRef.current = node;
177
+ if (typeof forwardedRef === 'function')
178
+ forwardedRef(node);
179
+ else if (forwardedRef)
180
+ forwardedRef.current =
181
+ node;
182
+ }, id: inputId, name: name, className: "muka-inputcounter__native", type: "text", role: "spinbutton", inputMode: inputMode ?? (Number.isInteger(step) ? 'numeric' : 'decimal'), autoComplete: rest.autoComplete ?? 'off', value: display, disabled: disabled, readOnly: readOnly, required: required, "aria-valuenow": current, "aria-valuemin": min, "aria-valuemax": max, "aria-invalid": ariaInvalid ?? (error || undefined), "aria-describedby": describedBy, onChange: (e) => {
183
+ // Digits, one leading minus and one decimal separator only.
184
+ if (/^-?\d*([.,]\d*)?$/.test(e.target.value))
185
+ setDraft(e.target.value);
186
+ }, onKeyDown: handleKeyDown, onFocus: (e) => {
187
+ setIsFocused(true);
188
+ onFocus?.(e);
189
+ }, onBlur: (e) => {
190
+ setIsFocused(false);
191
+ commitDraft();
192
+ onBlur?.(e);
193
+ } }) }), (0, jsx_runtime_1.jsxs)("div", { className: "muka-inputcounter__group", children: [(0, jsx_runtime_1.jsx)(Button_1.Button, { variant: "secondary", size: size, iconOnly: true, "aria-label": decrementLabel, "aria-controls": inputId, tabIndex: -1, disabled: !canDecrement, onMouseDown: keepFocus, onClick: () => stepBy(-1), children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: react_2.RiSubtractLine, size: BUTTON_ICON_SIZE[size] }) }), (0, jsx_runtime_1.jsx)("span", { className: "muka-inputcounter__divider", "aria-hidden": "true" }), (0, jsx_runtime_1.jsx)(Button_1.Button, { variant: "secondary", size: size, iconOnly: true, "aria-label": incrementLabel, "aria-controls": inputId, tabIndex: -1, disabled: !canIncrement, onMouseDown: keepFocus, onClick: () => stepBy(1), children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "add", variant: "line", size: BUTTON_ICON_SIZE[size] }) })] })] }), showError && ((0, jsx_runtime_1.jsx)("p", { className: "muka-input__error", id: errorMessageId, role: "alert", children: errorMessage })), !showError && helperText && ((0, jsx_runtime_1.jsx)("p", { className: "muka-input__helper", id: helperTextId, children: helperText }))] }));
194
+ });
195
+ exports.default = exports.InputCounter;
196
+ //# sourceMappingURL=InputCounter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputCounter.js","sourceRoot":"","sources":["../../../../components/InputCounter/InputCounter.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = exports.InputCounter = void 0;
7
+ var InputCounter_1 = require("./InputCounter");
8
+ Object.defineProperty(exports, "InputCounter", { enumerable: true, get: function () { return InputCounter_1.InputCounter; } });
9
+ var InputCounter_2 = require("./InputCounter");
10
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(InputCounter_2).default; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/InputCounter/index.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAsE;AAA7D,4GAAA,YAAY,OAAA;AACrB,+CAAyC;AAAhC,wHAAA,OAAO,OAAA"}
@@ -43,8 +43,13 @@ const DropdownMenuPrimitive = __importStar(require("@radix-ui/react-dropdown-men
43
43
  const ContextMenuPrimitive = __importStar(require("@radix-ui/react-context-menu"));
44
44
  const Icon_1 = require("../Icon");
45
45
  const Scrollbar_1 = require("../Scrollbar");
46
+ const usePortalContainer_1 = require("../../utils/usePortalContainer");
46
47
  require("./Menu.css");
47
- const MenuContext = (0, react_1.createContext)({ trigger: 'click', open: false });
48
+ const MenuContext = (0, react_1.createContext)({
49
+ trigger: 'click',
50
+ open: false,
51
+ triggerRef: { current: null },
52
+ });
48
53
  const MenuSearchContext = (0, react_1.createContext)({
49
54
  query: '',
50
55
  setQuery: () => { },
@@ -140,7 +145,8 @@ const Menu = ({ children, trigger = 'click', open, onOpenChange, defaultOpen, mo
140
145
  }
141
146
  onOpenChange?.(next);
142
147
  }, [isControlled, onOpenChange]);
143
- const value = (0, react_1.useMemo)(() => ({ trigger, open: isOpen }), [trigger, isOpen]);
148
+ const triggerRef = (0, react_1.useRef)(null);
149
+ const value = (0, react_1.useMemo)(() => ({ trigger, open: isOpen, triggerRef }), [trigger, isOpen]);
144
150
  if (trigger === 'context') {
145
151
  return ((0, jsx_runtime_1.jsx)(MenuContext.Provider, { value: value, children: (0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Root, { onOpenChange: handleOpenChange, modal: modal, children: children }) }));
146
152
  }
@@ -153,15 +159,22 @@ exports.DropdownMenu = exports.Menu;
153
159
  * MenuTrigger — opens the menu on click or right-click depending on `Menu.trigger`.
154
160
  */
155
161
  exports.MenuTrigger = react_1.default.forwardRef(({ children, asChild = false, disabled = false, className = '' }, ref) => {
156
- const { trigger } = (0, react_1.useContext)(MenuContext);
162
+ const { trigger, triggerRef } = (0, react_1.useContext)(MenuContext);
157
163
  const Primitives = useMenuPrimitives();
164
+ const setRef = (0, react_1.useCallback)((node) => {
165
+ triggerRef.current = node;
166
+ if (typeof ref === 'function')
167
+ ref(node);
168
+ else if (ref)
169
+ ref.current = node;
170
+ }, [ref, triggerRef]);
158
171
  if (trigger === 'context') {
159
172
  const triggerClasses = ['muka-context-menu__trigger', className]
160
173
  .filter(Boolean)
161
174
  .join(' ');
162
- return ((0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Trigger, { ref: ref, asChild: asChild, disabled: disabled, className: triggerClasses || undefined, children: children }));
175
+ return ((0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Trigger, { ref: setRef, asChild: asChild, disabled: disabled, className: triggerClasses || undefined, children: children }));
163
176
  }
164
- return ((0, jsx_runtime_1.jsx)(Primitives.Trigger, { ref: ref, asChild: asChild, disabled: disabled, className: className || undefined, children: children }));
177
+ return ((0, jsx_runtime_1.jsx)(Primitives.Trigger, { ref: setRef, asChild: asChild, disabled: disabled, className: className || undefined, children: children }));
165
178
  });
166
179
  exports.MenuTrigger.displayName = 'MenuTrigger';
167
180
  /**
@@ -189,7 +202,8 @@ function partitionMenuChildren(children) {
189
202
  return { search, items };
190
203
  }
191
204
  exports.MenuContent = react_1.default.forwardRef(({ children, align = 'start', side = 'bottom', sideOffset = 4, alignOffset = 0, className = '', style, loop = true, onOpenAutoFocus, onCloseAutoFocus, searchable = false, scrollbar = false, container, }, ref) => {
192
- const { trigger, open } = (0, react_1.useContext)(MenuContext);
205
+ const { trigger, open, triggerRef } = (0, react_1.useContext)(MenuContext);
206
+ const portalContainer = (0, usePortalContainer_1.usePortalContainer)(container, triggerRef);
193
207
  const [query, setQuery] = (0, react_1.useState)('');
194
208
  const [searchHits, setSearchHits] = (0, react_1.useState)(0);
195
209
  const [highlightedId, setHighlightedId] = (0, react_1.useState)(null);
@@ -317,7 +331,7 @@ exports.MenuContent = react_1.default.forwardRef(({ children, align = 'start', s
317
331
  onCloseAutoFocus,
318
332
  children: body,
319
333
  };
320
- return ((0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Portal, { container: container ?? undefined, children: (0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Content, { ...contextContentProps }) }));
334
+ return ((0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Portal, { container: portalContainer, children: (0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Content, { ...contextContentProps }) }));
321
335
  }
322
336
  const dropdownContentProps = {
323
337
  ref,
@@ -332,7 +346,7 @@ exports.MenuContent = react_1.default.forwardRef(({ children, align = 'start', s
332
346
  onCloseAutoFocus,
333
347
  children: body,
334
348
  };
335
- return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { container: container ?? undefined, children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Content, { ...dropdownContentProps }) }));
349
+ return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { container: portalContainer, children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Content, { ...dropdownContentProps }) }));
336
350
  });
337
351
  exports.MenuContent.displayName = 'MenuContent';
338
352
  /**
@@ -561,14 +575,15 @@ exports.MenuSubTrigger.displayName = 'MenuSubTrigger';
561
575
  * MenuSubContent - The dropdown container for submenu items
562
576
  */
563
577
  exports.MenuSubContent = react_1.default.forwardRef(({ children, sideOffset = 2, alignOffset = -4, className = '', loop = true, container }, ref) => {
564
- const { trigger } = (0, react_1.useContext)(MenuContext);
578
+ const { trigger, triggerRef } = (0, react_1.useContext)(MenuContext);
579
+ const portalContainer = (0, usePortalContainer_1.usePortalContainer)(container, triggerRef);
565
580
  const contentClasses = ['muka-menu__content', 'muka-menu__content--sub', className]
566
581
  .filter(Boolean)
567
582
  .join(' ');
568
583
  if (trigger === 'context') {
569
- return ((0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Portal, { container: container ?? undefined, children: (0, jsx_runtime_1.jsx)(ContextMenuPrimitive.SubContent, { ref: ref, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, children: children }) }));
584
+ return ((0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Portal, { container: portalContainer, children: (0, jsx_runtime_1.jsx)(ContextMenuPrimitive.SubContent, { ref: ref, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, children: children }) }));
570
585
  }
571
- return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { container: container ?? undefined, children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.SubContent, { ref: ref, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, children: children }) }));
586
+ return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { container: portalContainer, children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.SubContent, { ref: ref, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, children: children }) }));
572
587
  });
573
588
  exports.MenuSubContent.displayName = 'MenuSubContent';
574
589
  exports.default = exports.Menu;