@accelint/design-system 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/aria/index.js.map +1 -1
- package/dist/components/button/button.css.d.ts +24 -24
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/checkbox/checkbox.css.d.ts +23 -23
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/chip/chip.css.d.ts +18 -18
- package/dist/components/chip/index.js.map +1 -1
- package/dist/components/collection/index.d.ts +1 -1
- package/dist/components/collection/index.js.map +1 -1
- package/dist/components/combo-box/combo-box.css.d.ts +9 -9
- package/dist/components/combo-box/index.js +9 -5
- package/dist/components/combo-box/index.js.map +1 -1
- package/dist/components/date-field/date-field.css.d.ts +17 -17
- package/dist/components/date-field/index.js +8 -4
- package/dist/components/date-field/index.js.map +1 -1
- package/dist/components/date-input/date-input.css.d.ts +25 -25
- package/dist/components/date-input/index.js +15 -7
- package/dist/components/date-input/index.js.map +1 -1
- package/dist/components/dialog/dialog.css.d.ts +15 -15
- package/dist/components/dialog/index.js +7 -5
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/drawer/drawer.css.d.ts +16 -16
- package/dist/components/drawer/index.js +21 -8
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/element/index.d.ts +1 -1
- package/dist/components/element/index.js +7 -3
- package/dist/components/element/index.js.map +1 -1
- package/dist/components/element/types.d.ts +2 -0
- package/dist/components/group/group.css.d.ts +7 -7
- package/dist/components/group/index.js +6 -6
- package/dist/components/group/index.js.map +1 -1
- package/dist/components/icon/icon.css.d.ts +9 -9
- package/dist/components/icon/index.js +4 -4
- package/dist/components/icon/index.js.map +1 -1
- package/dist/components/index.d.ts +34 -34
- package/dist/components/input/index.js +17 -8
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input/input.css.d.ts +20 -20
- package/dist/components/menu/index.js.map +1 -1
- package/dist/components/menu/menu.css.d.ts +42 -42
- package/dist/components/merge-provider/index.js.map +1 -1
- package/dist/components/merge-provider/types.d.ts +2 -0
- package/dist/components/number-field/index.js +8 -4
- package/dist/components/number-field/index.js.map +1 -1
- package/dist/components/number-field/number-field.css.d.ts +11 -11
- package/dist/components/options/index.js.map +1 -1
- package/dist/components/options/options.css.d.ts +44 -44
- package/dist/components/picker/index.js.map +1 -1
- package/dist/components/picker/picker.css.d.ts +18 -18
- package/dist/components/popover/index.js +8 -4
- package/dist/components/popover/index.js.map +1 -1
- package/dist/components/popover/popover.css.d.ts +12 -12
- package/dist/components/query-builder/action-element.js.map +1 -1
- package/dist/components/query-builder/dataset-sample.js.map +1 -1
- package/dist/components/query-builder/group.js.map +1 -1
- package/dist/components/query-builder/index.js.map +1 -1
- package/dist/components/query-builder/query-builder.css.d.ts +53 -53
- package/dist/components/query-builder/value-editor.js.map +1 -1
- package/dist/components/query-builder/value-selector.js.map +1 -1
- package/dist/components/radio/index.js +12 -8
- package/dist/components/radio/index.js.map +1 -1
- package/dist/components/radio/radio.css.d.ts +22 -22
- package/dist/components/search-field/index.js +9 -5
- package/dist/components/search-field/index.js.map +1 -1
- package/dist/components/search-field/search-field.css.d.ts +9 -9
- package/dist/components/select/index.js +5 -5
- package/dist/components/select/index.js.map +1 -1
- package/dist/components/select/select.css.d.ts +12 -12
- package/dist/components/slider/index.js +48 -20
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/slider/slider.css.d.ts +27 -27
- package/dist/components/switch/index.js +4 -4
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/switch/switch.css.d.ts +16 -16
- package/dist/components/tabs/index.js +32 -20
- package/dist/components/tabs/index.js.map +1 -1
- package/dist/components/tabs/tabs.css.d.ts +25 -25
- package/dist/components/text-field/index.js +8 -4
- package/dist/components/text-field/index.js.map +1 -1
- package/dist/components/text-field/text-field.css.d.ts +8 -8
- package/dist/components/textarea/index.js +16 -7
- package/dist/components/textarea/index.js.map +1 -1
- package/dist/components/textarea/textarea.css.d.ts +22 -22
- package/dist/components/time-field/index.js +8 -4
- package/dist/components/time-field/index.js.map +1 -1
- package/dist/components/time-field/time-field.css.d.ts +17 -17
- package/dist/components/tooltip/index.js +17 -9
- package/dist/components/tooltip/index.js.map +1 -1
- package/dist/components/tooltip/tooltip.css.d.ts +11 -11
- package/dist/components/tree/index.js.map +1 -1
- package/dist/components/tree/tree.css.d.ts +45 -45
- package/dist/components/tree/utils.js +3 -1
- package/dist/components/tree/utils.js.map +1 -1
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/use-theme/index.d.ts +1 -1
- package/dist/hooks/use-theme/index.js.map +1 -1
- package/dist/hooks/use-tree/index.js.map +1 -1
- package/dist/hooks/use-update-effect/index.js.map +1 -1
- package/dist/index.d.ts +34 -34
- package/dist/ladle/actions.js.map +1 -1
- package/dist/styles/theme.css.d.ts +200 -200
- package/dist/test/setup.js +148 -26
- package/dist/test/setup.js.map +1 -1
- package/dist/utils/css/index.d.ts +1 -1
- package/dist/utils/css/index.js.map +1 -1
- package/dist/utils/props/index.js +1 -2
- package/dist/utils/props/index.js.map +1 -1
- package/dist/vanilla.d.ts +29 -29
- package/package.json +13 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/date-field/index.tsx"],"names":["DateField","RACDateField"],"mappings":";;;;;;;;;;;;;;;AAmDA,IAAM,cAAA,GAAmC;AAAA,EACvC,WAAA,EAAa;AAAA,IACX,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,IAAI,MAAA,CAAO;AAAA,GACb;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,IAAI,MAAA,CAAO;AAAA,GACb;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAK;AAAA,IACjB,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA;AAAK;AAErB,CAAA;AAEA,IAAM,WAAA,GAAc,IAAA;AAEb,IAAM,gBAAA,GACX,cAAuE,IAAI;AAEtE,IAAM,SAAA,GAAY,UAAA,CAAW,SAASA,UAAAA,CAC3C,OACA,GAAA,EACA;AACA,EAAA,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/date-field/index.tsx"],"names":["DateField","RACDateField"],"mappings":"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","file":"index.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 createContext,\n type ForwardedRef,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n type DateValue,\n type FieldErrorProps,\n LabelContext,\n type LabelProps,\n Provider,\n DateField as RACDateField,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n AriaFieldErrorContext,\n type AriaLabelContext,\n AriaTextContext,\n} from '../aria';\nimport { DateInputContext } from '../date-input';\nimport { IconContext } from '../icon';\nimport { dateFieldClassNames, dateFieldStateVars } from './date-field.css';\nimport type { DateInputProps } from '../date-input/types';\nimport type { IconProps } from '../icon/types';\nimport type {\n DateFieldMapping,\n DateFieldProps,\n DateFieldRenderProps,\n} from './types';\n\nconst defaultMapping: DateFieldMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n icon: {\n sm: { size: 'xs' },\n lg: { size: 'md' },\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const DateFieldContext =\n createContext<ContextValue<DateFieldProps<DateValue>, HTMLDivElement>>(null);\n\nexport const DateField = forwardRef(function DateField<T extends DateValue>(\n props: DateFieldProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const [contextProps, contextRef] = useContextProps(\n props,\n ref,\n DateFieldContext,\n );\n\n const finalProps = useDefaultProps(\n contextProps as DateFieldProps<DateValue>,\n 'DateField',\n ) as DateFieldProps<T>;\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n value,\n ...rest\n } = finalProps;\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(dateFieldClassNames, theme.DateField, classNamesProp, {\n description: mapping.description[size],\n error: mapping.error[size],\n }),\n [theme.DateField, classNamesProp, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: DateFieldRenderProps) =>\n inlineVars(dateFieldStateVars, {\n ...renderProps,\n size,\n }),\n [size],\n );\n\n const values = useMemo<\n [\n [typeof DateInputContext, ContextValue<DateInputProps, HTMLDivElement>],\n [typeof AriaLabelContext, ContextValue<LabelProps, HTMLLabelElement>],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [\n typeof AriaFieldErrorContext,\n ContextValue<FieldErrorProps, HTMLElement>,\n ],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n ]\n >(\n () => [\n [DateInputContext, { classNames: classNames?.input, size }],\n [LabelContext, { className: classNames?.label }],\n [\n AriaTextContext,\n {\n slots: {\n description: { className: classNames?.description },\n },\n },\n ],\n [AriaFieldErrorContext, { className: classNames?.error }],\n [IconContext, { ...mapping.icon[size], classNames: classNames?.icon }],\n ],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: DateFieldRenderProps) => {\n return (\n <Provider values={values}>\n <div className={classNames?.dateField}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n );\n },\n [childrenProp, values, classNames?.dateField],\n );\n\n return (\n <RACDateField\n {...rest}\n ref={contextRef}\n className={classNames?.container}\n style={style}\n value={value}\n >\n {children}\n </RACDateField>\n );\n});\n"]}
|
|
@@ -10,44 +10,44 @@ import '../icon/types.js';
|
|
|
10
10
|
declare const dateInputContainer: string;
|
|
11
11
|
declare const dateSegmentsContainer: string;
|
|
12
12
|
declare const dateInputStateVars: {
|
|
13
|
-
size: `var(--${string})
|
|
14
|
-
isHovered: `var(--${string})
|
|
15
|
-
isFocusWithin: `var(--${string})
|
|
16
|
-
isFocusVisible: `var(--${string})
|
|
17
|
-
isDisabled: `var(--${string})
|
|
18
|
-
isInvalid: `var(--${string})
|
|
13
|
+
size: `var(--${string})`;
|
|
14
|
+
isHovered: `var(--${string})`;
|
|
15
|
+
isFocusWithin: `var(--${string})`;
|
|
16
|
+
isFocusVisible: `var(--${string})`;
|
|
17
|
+
isDisabled: `var(--${string})`;
|
|
18
|
+
isInvalid: `var(--${string})`;
|
|
19
19
|
};
|
|
20
20
|
declare const dateSegmentStateVars: {
|
|
21
|
-
isHovered: `var(--${string})
|
|
22
|
-
isFocused: `var(--${string})
|
|
23
|
-
isFocusVisible: `var(--${string})
|
|
24
|
-
isDisabled: `var(--${string})
|
|
25
|
-
isInvalid: `var(--${string})
|
|
26
|
-
isPlaceholder: `var(--${string})
|
|
27
|
-
isReadOnly: `var(--${string})
|
|
28
|
-
isEditable: `var(--${string})
|
|
21
|
+
isHovered: `var(--${string})`;
|
|
22
|
+
isFocused: `var(--${string})`;
|
|
23
|
+
isFocusVisible: `var(--${string})`;
|
|
24
|
+
isDisabled: `var(--${string})`;
|
|
25
|
+
isInvalid: `var(--${string})`;
|
|
26
|
+
isPlaceholder: `var(--${string})`;
|
|
27
|
+
isReadOnly: `var(--${string})`;
|
|
28
|
+
isEditable: `var(--${string})`;
|
|
29
29
|
};
|
|
30
30
|
declare const dateInputSpaceVars: {
|
|
31
31
|
input: {
|
|
32
|
-
x: `var(--${string})
|
|
33
|
-
y: `var(--${string})
|
|
34
|
-
gap: `var(--${string})
|
|
35
|
-
minWidth: `var(--${string})
|
|
36
|
-
width: `var(--${string})
|
|
37
|
-
maxWidth: `var(--${string})
|
|
32
|
+
x: `var(--${string})`;
|
|
33
|
+
y: `var(--${string})`;
|
|
34
|
+
gap: `var(--${string})`;
|
|
35
|
+
minWidth: `var(--${string})`;
|
|
36
|
+
width: `var(--${string})`;
|
|
37
|
+
maxWidth: `var(--${string})`;
|
|
38
38
|
};
|
|
39
39
|
segments: {
|
|
40
|
-
gap: `var(--${string})
|
|
40
|
+
gap: `var(--${string})`;
|
|
41
41
|
};
|
|
42
42
|
};
|
|
43
43
|
declare const dateInputColorVars: {
|
|
44
|
-
border: `var(--${string})
|
|
45
|
-
color: `var(--${string})
|
|
44
|
+
border: `var(--${string})`;
|
|
45
|
+
color: `var(--${string})`;
|
|
46
46
|
description: {
|
|
47
|
-
color: `var(--${string})
|
|
47
|
+
color: `var(--${string})`;
|
|
48
48
|
};
|
|
49
49
|
error: {
|
|
50
|
-
color: `var(--${string})
|
|
50
|
+
color: `var(--${string})`;
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
53
|
declare const dateInputClassNames: DateInputClassNames;
|
|
@@ -24,8 +24,12 @@ var defaultMapping = {
|
|
|
24
24
|
var defaultSize = "lg";
|
|
25
25
|
var DateInputContext = createContext(null);
|
|
26
26
|
var DateInput = forwardRef(function DateInput2(props, ref) {
|
|
27
|
-
[
|
|
28
|
-
|
|
27
|
+
const [contextProps, contextRef] = useContextProps(
|
|
28
|
+
props,
|
|
29
|
+
ref,
|
|
30
|
+
DateInputContext
|
|
31
|
+
);
|
|
32
|
+
const finalProps = useDefaultProps(contextProps, "DateInput");
|
|
29
33
|
const {
|
|
30
34
|
children: childrenProp,
|
|
31
35
|
classNames: classNamesProp,
|
|
@@ -33,7 +37,7 @@ var DateInput = forwardRef(function DateInput2(props, ref) {
|
|
|
33
37
|
size = defaultSize,
|
|
34
38
|
provider,
|
|
35
39
|
...rest
|
|
36
|
-
} =
|
|
40
|
+
} = finalProps;
|
|
37
41
|
const dateFieldState = useContext(DateFieldStateContext);
|
|
38
42
|
const timeFieldState = useContext(TimeFieldStateContext);
|
|
39
43
|
const state = dateFieldState ?? timeFieldState ?? null;
|
|
@@ -68,7 +72,7 @@ var DateInput = forwardRef(function DateInput2(props, ref) {
|
|
|
68
72
|
/* @__PURE__ */ jsx(
|
|
69
73
|
Group,
|
|
70
74
|
{
|
|
71
|
-
ref,
|
|
75
|
+
ref: contextRef,
|
|
72
76
|
...rest,
|
|
73
77
|
className: classNames?.input?.container,
|
|
74
78
|
style,
|
|
@@ -100,12 +104,16 @@ var DateSegments = forwardRef(
|
|
|
100
104
|
var DateSegmentContext = createContext(null);
|
|
101
105
|
var DateSegment = forwardRef(
|
|
102
106
|
function DateSegment2(props, ref) {
|
|
103
|
-
[
|
|
107
|
+
const [contextProps, contextRef] = useContextProps(
|
|
108
|
+
props,
|
|
109
|
+
ref,
|
|
110
|
+
DateSegmentContext
|
|
111
|
+
);
|
|
104
112
|
const {
|
|
105
113
|
classNames: classNamesProp,
|
|
106
114
|
children: childrenProp,
|
|
107
115
|
...rest
|
|
108
|
-
} =
|
|
116
|
+
} = contextProps;
|
|
109
117
|
const classNames = useMemo(
|
|
110
118
|
() => mergeClassNames(dateInputClassNames, classNamesProp),
|
|
111
119
|
[classNamesProp]
|
|
@@ -132,7 +140,7 @@ var DateSegment = forwardRef(
|
|
|
132
140
|
return /* @__PURE__ */ jsx(
|
|
133
141
|
DateSegment$1,
|
|
134
142
|
{
|
|
135
|
-
ref,
|
|
143
|
+
ref: contextRef,
|
|
136
144
|
...rest,
|
|
137
145
|
style,
|
|
138
146
|
className: classNames?.segment?.container,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/date-input/index.tsx"],"names":["DateInput","Fragment","DateSegment","RACDateSegment"],"mappings":";;;;;;;;;;;;;AAkDA,IAAM,cAAA,GAAiB;AAAA,EACrB,IAAA,EAAM;AAAA,IACJ,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAK;AAAA,IACjB,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA;AAAK,GACnB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,IAAI,MAAA,CAAO;AAAA;AAEf,CAAA;AAEA,IAAM,WAAA,GAAc,IAAA;AAEb,IAAM,gBAAA,GACX,cAA4D,IAAI;AAE3D,IAAM,SAAA,GAAY,UAAA,CAAW,SAASA,UAAAA,CAC3C,OACA,GAAA,EACA;AACA,EAAA,CAAC,OAAO,GAAG,CAAA,GAAI,eAAA,CAAgB,KAAA,EAAO,KAAK,gBAAgB,CAAA;AAC3D,EAAA,KAAA,GAAQ,eAAA,CAAgB,OAAO,WAAW,CAAA;AAE1C,EAAA,MAAM;AAAA,IACJ,QAAA,EAAU,YAAA;AAAA,IACV,UAAA,EAAY,cAAA;AAAA,IACZ,OAAA,EAAS,WAAA;AAAA,IACT,IAAA,GAAO,WAAA;AAAA,IACP,QAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,cAAA,GAAiB,WAAW,qBAAqB,CAAA;AACvD,EAAA,MAAM,cAAA,GAAiB,WAAW,qBAAqB,CAAA;AACvD,EAAA,MAAM,KAAA,GAAQ,kBAAkB,cAAA,IAAkB,IAAA;AAElD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,QAAQ,QAAA,EAAS;AAEvB,EAAA,MAAM,OAAA,GAAU,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,mBAAA,EAAqB,KAAA,CAAM,WAAW,cAAA,EAAgB;AAAA,MACpE,OAAO,EAAE,KAAA,EAAO,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA;AAAE,KACrC,CAAA;AAAA,IACH,CAAC,KAAA,CAAM,SAAA,EAAW,cAAA,EAAgB,SAAS,IAAI;AAAA,GACjD;AAEA,EAAA,MAAM,KAAA,GAAQ,WAAA;AAAA,IACZ,CAAC,gBACC,UAAA,CAAW,kBAAA,EAAoB,EAAE,GAAG,WAAA,EAAa,MAAM,CAAA;AAAA,IACzD,CAAC,IAAI;AAAA,GACP;AAEA,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,CAAC,WAAA,qBACC,GAAA,CAAC,SAAI,SAAA,EAAW,UAAA,EAAY,OAAO,KAAA,EAChC,QAAA,EAAA,YAAA,KACE,QAAA,GACC,eAAA,CAAgB,cAAc,EAAE,GAAG,aAAa,GAAG,KAAA,EAAO,CAAA,mBAE1D,GAAA,CAAAC,QAAAA,EAAA,EACG,gBAAM,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,EAAS,GAAA,yBAC3BA,UAAA,EAAA,EACE,QAAA,EAAA,YAAA,CAAa,OAAO,CAAA,EAAA,EADR,CAAA,EAAG,QAAQ,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAErC,CACD,GACH,CAAA,CAAA,EAEN,CAAA;AAAA,IAEF,CAAC,YAAA,EAAc,KAAA,EAAO,QAAA,EAAU,YAAY,KAAK;AAAA,GACnD;AAEA,EAAA,uBACE,IAAA,CAAAA,UAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACC,GAAG,IAAA;AAAA,QACJ,SAAA,EAAW,YAAY,KAAA,EAAO,SAAA;AAAA,QAC9B,KAAA;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,wBACC,KAAA,EAAA,EAAM;AAAA,GAAA,EACT,CAAA;AAEJ,CAAC;AAEM,IAAM,YAAA,GAAe,UAAA;AAAA,EAC1B,CAAC,OAA0B,GAAA,KAAsC;AAC/D,IAAA,MAAM,EAAE,QAAA,EAAU,UAAA,EAAY,cAAA,EAAe,GAAI,KAAA;AAEjD,IAAA,MAAM,cAAA,GAAiB,WAAW,qBAAqB,CAAA;AACvD,IAAA,MAAM,cAAA,GAAiB,WAAW,qBAAqB,CAAA;AACvD,IAAA,MAAM,KAAA,GAAQ,kBAAkB,cAAA,IAAkB,IAAA;AAElD,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,QAAQ,QAAA,EAAS;AAEvB,IAAA,MAAM,UAAA,GAAa,OAAA;AAAA,MACjB,MACE,eAAA,CAAgB,mBAAA,EAAqB,KAAA,CAAM,WAAW,cAAc,CAAA;AAAA,MACtE,CAAC,KAAA,CAAM,SAAA,EAAW,cAAc;AAAA,KAClC;AAEA,IAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,UAAU,GAAA,EAC1C,QAAA,EAAA,KAAA,CAAM,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,EAAS,wBAC5B,GAAA,CAACA,UAAA,EAAA,EACE,QAAA,EAAA,QAAA,CAAS,OAAO,CAAA,EAAA,EADJ,CAAA,EAAG,OAAA,CAAQ,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAErC,CACD,CAAA,EACH,CAAA;AAAA,EAEJ;AACF;AAEO,IAAM,kBAAA,GACX,cAAuD,IAAI;AAEtD,IAAM,WAAA,GAAoC,UAAA;AAAA,EAC/C,SAASC,YAAAA,CACP,KAAA,EACA,GAAA,EACA;AACA,IAAA,CAAC,OAAO,GAAG,CAAA,GAAI,eAAA,CAAgB,KAAA,EAAO,KAAK,kBAAkB,CAAA;AAE7D,IAAA,MAAM;AAAA,MACJ,UAAA,EAAY,cAAA;AAAA,MACZ,QAAA,EAAU,YAAA;AAAA,MACV,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAAa,OAAA;AAAA,MACjB,MAAM,eAAA,CAAgB,mBAAA,EAAqB,cAAc,CAAA;AAAA,MACzD,CAAC,cAAc;AAAA,KACjB;AAEA,IAAA,MAAM,KAAA,GAAQ,WAAA;AAAA,MACZ,CAAC,WAAA,KACC,UAAA,CAAW,oBAAA,EAAsB;AAAA,QAC/B,GAAG;AAAA,OACJ,CAAA;AAAA,MACH;AAAC,KACH;AAEA,IAAA,MAAM,QAAA,GAAW,WAAA;AAAA,MACf,CAAC,WAAA,KAAwC;AACvC,QAAA,MAAM,EAAE,aAAA,EAAe,WAAA,EAAa,IAAA,EAAM,OAAM,GAAI,WAAA;AACpD,QAAA,IAAI,OAAO,iBAAiB,UAAA,EAAY;AACtC,UAAA,OAAO,aAAa,EAAE,GAAG,WAAA,EAAa,eAAA,EAAiB,MAAM,CAAA;AAAA,QAC/D;AAEA,QAAA,IAAI,aAAA,EAAe;AACjB,UAAA,OAAO,WAAA;AAAA,QACT;AAEA,QAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,YAAY,OAAA,EAAS,OAAA,EAAU,mBAAS,IAAA,EAAK,CAAA;AAAA,MAEjE,CAAA;AAAA,MACA,CAAC,cAAc,UAAU;AAAA,KAC3B;AAEA,IAAA,uBACE,GAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACC,GAAG,IAAA;AAAA,QACJ,KAAA;AAAA,QACA,SAAA,EAAW,YAAY,OAAA,EAAS,SAAA;AAAA,QAE/B;AAAA;AAAA,KACH;AAAA,EAEJ;AACF","file":"index.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 FC,\n type ForwardedRef,\n Fragment,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n DateFieldStateContext,\n Group,\n DateSegment as RACDateSegment,\n type SlotProps,\n TimeFieldStateContext,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { inputs } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport { Input } from '../input';\nimport {\n dateInputClassNames,\n dateInputStateVars,\n dateSegmentStateVars,\n} from './date-input.css';\nimport type {\n DateInputProps,\n DateInputRenderProps,\n DateSegmentProps,\n DateSegmentRenderProps,\n DateSegmentsProps,\n} from './types';\n\nconst defaultMapping = {\n icon: {\n sm: { size: 'xs' },\n lg: { size: 'md' },\n },\n input: {\n sm: inputs.sm,\n lg: inputs.lg,\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const DateInputContext =\n createContext<ContextValue<DateInputProps, HTMLDivElement>>(null);\n\nexport const DateInput = forwardRef(function DateInput(\n props: DateInputProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, DateInputContext);\n props = useDefaultProps(props, 'DateInput');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n provider,\n ...rest\n } = props;\n\n const dateFieldState = useContext(DateFieldStateContext);\n const timeFieldState = useContext(TimeFieldStateContext);\n const state = dateFieldState ?? timeFieldState ?? null;\n\n if (!state) {\n throw new Error(\n 'Date Input component must be used as a child of either DateField or TimeField.',\n );\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(dateInputClassNames, theme.DateInput, classNamesProp, {\n input: { input: mapping.input[size] },\n }),\n [theme.DateInput, classNamesProp, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: DateInputRenderProps) =>\n inlineVars(dateInputStateVars, { ...renderProps, size }),\n [size],\n );\n\n const children = useCallback(\n (renderProps: DateInputRenderProps) => (\n <div className={classNames?.input?.input}>\n {childrenProp &&\n (provider ? (\n callRenderProps(childrenProp, { ...renderProps, ...state })\n ) : (\n <>\n {state.segments.map((segment, idx) => (\n <Fragment key={`${segment.type}_${idx}`}>\n {childrenProp(segment)}\n </Fragment>\n ))}\n </>\n ))}\n </div>\n ),\n [childrenProp, state, provider, classNames?.input],\n );\n\n return (\n <>\n <Group\n ref={ref}\n {...rest}\n className={classNames?.input?.container}\n style={style}\n >\n {children}\n </Group>\n <Input />\n </>\n );\n});\n\nexport const DateSegments = forwardRef(\n (props: DateSegmentsProps, ref: ForwardedRef<HTMLDivElement>) => {\n const { children, classNames: classNamesProp } = props;\n\n const dateFieldState = useContext(DateFieldStateContext);\n const timeFieldState = useContext(TimeFieldStateContext);\n const state = dateFieldState ?? timeFieldState ?? null;\n\n if (!state) {\n throw new Error(\n 'Date Segments component must be used as a child of either DateField or TimeField.',\n );\n }\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () =>\n mergeClassNames(dateInputClassNames, theme.DateInput, classNamesProp),\n [theme.DateInput, classNamesProp],\n );\n\n return (\n <div className={classNames?.input?.segments} ref={ref}>\n {state.segments.map((segment, idx) => (\n <Fragment key={`${segment.type}_${idx}`}>\n {children(segment)}\n </Fragment>\n ))}\n </div>\n );\n },\n);\n\nexport const DateSegmentContext =\n createContext<ContextValue<SlotProps, HTMLDivElement>>(null);\n\nexport const DateSegment: FC<DateSegmentProps> = forwardRef(\n function DateSegment(\n props: DateSegmentProps,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\n [props, ref] = useContextProps(props, ref, DateSegmentContext);\n\n const {\n classNames: classNamesProp,\n children: childrenProp,\n ...rest\n } = props;\n\n const classNames = useMemo(\n () => mergeClassNames(dateInputClassNames, classNamesProp),\n [classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: DateSegmentRenderProps) =>\n inlineVars(dateSegmentStateVars, {\n ...renderProps,\n }),\n [],\n );\n\n const children = useCallback(\n (renderProps: DateSegmentRenderProps) => {\n const { isPlaceholder, placeholder, text, value } = renderProps;\n if (typeof childrenProp === 'function') {\n return childrenProp({ ...renderProps, defaultChildren: null });\n }\n\n if (isPlaceholder) {\n return placeholder;\n }\n\n return (\n <div className={classNames?.segment?.segment}>{value ?? text}</div>\n );\n },\n [childrenProp, classNames],\n );\n\n return (\n <RACDateSegment\n ref={ref}\n {...rest}\n style={style}\n className={classNames?.segment?.container}\n >\n {children}\n </RACDateSegment>\n );\n },\n);\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/date-input/index.tsx"],"names":["DateInput","Fragment","DateSegment","RACDateSegment"],"mappings":"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","file":"index.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 createContext,\n type FC,\n type ForwardedRef,\n Fragment,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport {\n type ContextValue,\n DateFieldStateContext,\n Group,\n DateSegment as RACDateSegment,\n type SlotProps,\n TimeFieldStateContext,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { inputs } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport { Input } from '../input';\nimport {\n dateInputClassNames,\n dateInputStateVars,\n dateSegmentStateVars,\n} from './date-input.css';\nimport type {\n DateInputProps,\n DateInputRenderProps,\n DateSegmentProps,\n DateSegmentRenderProps,\n DateSegmentsProps,\n} from './types';\n\nconst defaultMapping = {\n icon: {\n sm: { size: 'xs' },\n lg: { size: 'md' },\n },\n input: {\n sm: inputs.sm,\n lg: inputs.lg,\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const DateInputContext =\n createContext<ContextValue<DateInputProps, HTMLDivElement>>(null);\n\nexport const DateInput = forwardRef(function DateInput(\n props: DateInputProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const [contextProps, contextRef] = useContextProps(\n props,\n ref,\n DateInputContext,\n );\n const finalProps = useDefaultProps(contextProps, 'DateInput');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n provider,\n ...rest\n } = finalProps;\n\n const dateFieldState = useContext(DateFieldStateContext);\n const timeFieldState = useContext(TimeFieldStateContext);\n const state = dateFieldState ?? timeFieldState ?? null;\n\n if (!state) {\n throw new Error(\n 'Date Input component must be used as a child of either DateField or TimeField.',\n );\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(dateInputClassNames, theme.DateInput, classNamesProp, {\n input: { input: mapping.input[size] },\n }),\n [theme.DateInput, classNamesProp, mapping, size],\n );\n\n const style = useCallback(\n (renderProps: DateInputRenderProps) =>\n inlineVars(dateInputStateVars, { ...renderProps, size }),\n [size],\n );\n\n const children = useCallback(\n (renderProps: DateInputRenderProps) => (\n <div className={classNames?.input?.input}>\n {childrenProp &&\n (provider ? (\n callRenderProps(childrenProp, { ...renderProps, ...state })\n ) : (\n <>\n {state.segments.map((segment, idx) => (\n <Fragment key={`${segment.type}_${idx}`}>\n {childrenProp(segment)}\n </Fragment>\n ))}\n </>\n ))}\n </div>\n ),\n [childrenProp, state, provider, classNames?.input],\n );\n\n return (\n <>\n <Group\n ref={contextRef}\n {...rest}\n className={classNames?.input?.container}\n style={style}\n >\n {children}\n </Group>\n <Input />\n </>\n );\n});\n\nexport const DateSegments = forwardRef(\n (props: DateSegmentsProps, ref: ForwardedRef<HTMLDivElement>) => {\n const { children, classNames: classNamesProp } = props;\n\n const dateFieldState = useContext(DateFieldStateContext);\n const timeFieldState = useContext(TimeFieldStateContext);\n const state = dateFieldState ?? timeFieldState ?? null;\n\n if (!state) {\n throw new Error(\n 'Date Segments component must be used as a child of either DateField or TimeField.',\n );\n }\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () =>\n mergeClassNames(dateInputClassNames, theme.DateInput, classNamesProp),\n [theme.DateInput, classNamesProp],\n );\n\n return (\n <div className={classNames?.input?.segments} ref={ref}>\n {state.segments.map((segment, idx) => (\n <Fragment key={`${segment.type}_${idx}`}>\n {children(segment)}\n </Fragment>\n ))}\n </div>\n );\n },\n);\n\nexport const DateSegmentContext =\n createContext<ContextValue<SlotProps, HTMLDivElement>>(null);\n\nexport const DateSegment: FC<DateSegmentProps> = forwardRef(\n function DateSegment(\n props: DateSegmentProps,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\n const [contextProps, contextRef] = useContextProps(\n props,\n ref,\n DateSegmentContext,\n );\n\n const {\n classNames: classNamesProp,\n children: childrenProp,\n ...rest\n } = contextProps;\n\n const classNames = useMemo(\n () => mergeClassNames(dateInputClassNames, classNamesProp),\n [classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: DateSegmentRenderProps) =>\n inlineVars(dateSegmentStateVars, {\n ...renderProps,\n }),\n [],\n );\n\n const children = useCallback(\n (renderProps: DateSegmentRenderProps) => {\n const { isPlaceholder, placeholder, text, value } = renderProps;\n if (typeof childrenProp === 'function') {\n return childrenProp({ ...renderProps, defaultChildren: null });\n }\n\n if (isPlaceholder) {\n return placeholder;\n }\n\n return (\n <div className={classNames?.segment?.segment}>{value ?? text}</div>\n );\n },\n [childrenProp, classNames],\n );\n\n return (\n <RACDateSegment\n ref={contextRef}\n {...rest}\n style={style}\n className={classNames?.segment?.container}\n >\n {children}\n </RACDateSegment>\n );\n },\n);\n"]}
|
|
@@ -10,35 +10,35 @@ import '@react-types/shared';
|
|
|
10
10
|
|
|
11
11
|
declare const dialogContainer: string;
|
|
12
12
|
declare const dialogColorVars: {
|
|
13
|
-
overlay: `var(--${string})
|
|
13
|
+
overlay: `var(--${string})`;
|
|
14
14
|
content: {
|
|
15
|
-
color: `var(--${string})
|
|
15
|
+
color: `var(--${string})`;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
18
|
declare const dialogSpaceVars: {
|
|
19
|
-
width: `var(--${string})
|
|
20
|
-
x: `var(--${string})
|
|
21
|
-
y: `var(--${string})
|
|
19
|
+
width: `var(--${string})`;
|
|
20
|
+
x: `var(--${string})`;
|
|
21
|
+
y: `var(--${string})`;
|
|
22
22
|
gap: {
|
|
23
|
-
default: `var(--${string})
|
|
23
|
+
default: `var(--${string})`;
|
|
24
24
|
header: {
|
|
25
|
-
after: `var(--${string})
|
|
25
|
+
after: `var(--${string})`;
|
|
26
26
|
};
|
|
27
27
|
content: {
|
|
28
|
-
before: `var(--${string})
|
|
28
|
+
before: `var(--${string})`;
|
|
29
29
|
};
|
|
30
30
|
footer: {
|
|
31
|
-
before: `var(--${string})
|
|
31
|
+
before: `var(--${string})`;
|
|
32
32
|
};
|
|
33
33
|
};
|
|
34
34
|
};
|
|
35
35
|
declare const dialogStateVars: {
|
|
36
|
-
hasHeader: `var(--${string})
|
|
37
|
-
size: `var(--${string})
|
|
38
|
-
isEntering: `var(--${string})
|
|
39
|
-
isExiting: `var(--${string})
|
|
40
|
-
isGlobal: `var(--${string})
|
|
41
|
-
isOpen: `var(--${string})
|
|
36
|
+
hasHeader: `var(--${string})`;
|
|
37
|
+
size: `var(--${string})`;
|
|
38
|
+
isEntering: `var(--${string})`;
|
|
39
|
+
isExiting: `var(--${string})`;
|
|
40
|
+
isGlobal: `var(--${string})`;
|
|
41
|
+
isOpen: `var(--${string})`;
|
|
42
42
|
};
|
|
43
43
|
declare const dialogClassNames: DialogClassNames;
|
|
44
44
|
|
|
@@ -44,8 +44,8 @@ var defaultMapping = {
|
|
|
44
44
|
};
|
|
45
45
|
var DialogContext = createContext(null);
|
|
46
46
|
var Dialog = forwardRef(function Dialog2(props, ref) {
|
|
47
|
-
[
|
|
48
|
-
|
|
47
|
+
const [contextProps, contextRef] = useContextProps(props, ref, DialogContext);
|
|
48
|
+
const finalProps = useDefaultProps(contextProps, "Dialog");
|
|
49
49
|
const {
|
|
50
50
|
children: childrenProp,
|
|
51
51
|
classNames: classNamesProp,
|
|
@@ -54,7 +54,7 @@ var Dialog = forwardRef(function Dialog2(props, ref) {
|
|
|
54
54
|
role,
|
|
55
55
|
size = "lg",
|
|
56
56
|
...rest
|
|
57
|
-
} =
|
|
57
|
+
} = finalProps;
|
|
58
58
|
const theme = useTheme();
|
|
59
59
|
const isSSR = useIsSSR();
|
|
60
60
|
const [portal, setPortal] = useState(isSSR ? null : document.body);
|
|
@@ -171,12 +171,14 @@ var Dialog = forwardRef(function Dialog2(props, ref) {
|
|
|
171
171
|
setPortal(isSSR ? null : document.body);
|
|
172
172
|
};
|
|
173
173
|
}, [isSSR, parentRef, classNames?.portal]);
|
|
174
|
-
if (!portal)
|
|
174
|
+
if (!portal) {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
175
177
|
return /* @__PURE__ */ jsx(
|
|
176
178
|
ModalOverlay,
|
|
177
179
|
{
|
|
178
180
|
...rest,
|
|
179
|
-
ref,
|
|
181
|
+
ref: contextRef,
|
|
180
182
|
className: classNames?.container,
|
|
181
183
|
style,
|
|
182
184
|
UNSTABLE_portalContainer: portal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/dialog/index.tsx"],"names":["Dialog","RACDialog"],"mappings":"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","file":"index.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 { useIsSSR } from '@react-aria/ssr';\nimport {\n type ForwardedRef,\n type HTMLAttributes,\n createContext,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport {\n type ContextValue,\n DEFAULT_SLOT,\n Modal,\n ModalOverlay,\n type ModalRenderProps,\n Provider,\n Dialog as RACDialog,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useSlot } from '../../hooks/use-slot';\nimport { useTheme } from '../../hooks/use-theme';\nimport { headings } from '../../styles/typography.css';\nimport type { OmitProtectedProps } from '../../types/props';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport { AriaHeadingContext } from '../aria';\nimport { ButtonContext } from '../button';\nimport type { ButtonProps } from '../button/types';\nimport { ElementContext } from '../element';\nimport type { ElementProps } from '../element/types';\nimport { GroupContext } from '../group';\nimport type { GroupProps } from '../group/types';\nimport { dialogClassNames, dialogStateVars } from './dialog.css';\nimport type { DialogMapping, DialogProps, DialogSizes } from './types';\n\nconst dialogSizes: DialogSizes[] = ['sm', 'lg'];\n\nconst defaultMapping: DialogMapping = {\n heading: {\n sm: { className: headings.v4 },\n lg: { className: headings.v2 },\n },\n actions: {\n context: ButtonContext,\n orientation: 'horizontal',\n reverse: true,\n },\n primary: dialogSizes.reduce(\n (acc, size) => {\n acc[size] = { size };\n\n return acc;\n },\n {} as Record<DialogSizes, OmitProtectedProps<ButtonProps>>,\n ),\n close: dialogSizes.reduce(\n (acc, size) => {\n acc[size] = { size, variant: 'bare' };\n\n return acc;\n },\n {} as Record<DialogSizes, OmitProtectedProps<ButtonProps>>,\n ),\n};\n\nexport const DialogContext =\n createContext<ContextValue<DialogProps, HTMLDivElement>>(null);\n\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, DialogContext);\n props = useDefaultProps(props, 'Dialog');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n parentRef,\n role,\n size = 'lg',\n ...rest\n } = props;\n\n const theme = useTheme();\n const isSSR = useIsSSR();\n const [portal, setPortal] = useState(isSSR ? null : document.body);\n\n const isGlobal = useMemo(\n () => !isSSR && portal === document.body,\n [isSSR, portal],\n );\n\n const mapping = useMemo(\n () => ({ ...defaultMapping, ...mappingProp }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(dialogClassNames, theme.Dialog, classNamesProp, {\n container: isGlobal ? theme.className : undefined,\n }),\n [theme.Dialog, classNamesProp, isGlobal, theme.className],\n );\n\n const [headerRef, hasHeader] = useSlot();\n\n const style = useCallback(\n ({ state, ...renderProps }: ModalRenderProps) => ({\n ...(isGlobal ? theme.style : {}),\n ...inlineVars(dialogStateVars, {\n hasHeader,\n size,\n ...renderProps,\n isGlobal,\n }),\n }),\n [size, theme.style, isGlobal, hasHeader],\n );\n\n const values = useMemo<\n [\n [\n typeof ElementContext,\n ContextValue<\n ElementProps<\n ContextValue<HTMLAttributes<HTMLElement>, HTMLHeadingElement>,\n ContextValue<\n GroupProps<ButtonProps, HTMLButtonElement>,\n HTMLDivElement\n >\n >,\n HTMLElement\n >,\n ],\n ]\n >(\n () => [\n [\n ElementContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n header: {\n as: 'header',\n className: classNames?.header,\n ref: headerRef,\n values: [\n [\n AriaHeadingContext,\n {\n ...mapping.heading[size],\n slot: 'title',\n },\n ],\n [GroupContext, null],\n ],\n },\n content: { className: classNames?.content },\n footer: {\n as: 'footer',\n className: classNames?.footer,\n values: [\n [AriaHeadingContext, null],\n [\n GroupContext,\n {\n values: {\n slots: {\n [DEFAULT_SLOT]: mapping.primary[size] ?? {},\n close: mapping.close[size] ?? {},\n },\n },\n ...mapping.actions,\n },\n ],\n ],\n },\n },\n },\n ],\n ],\n [\n classNames?.header,\n classNames?.content,\n classNames?.footer,\n headerRef,\n mapping.actions,\n mapping.heading,\n mapping.primary,\n mapping.close,\n size,\n ],\n );\n\n const children = useCallback(\n (renderProps: ModalRenderProps) => (\n <Provider values={values}>\n <Modal className={classNames?.modal}>\n <RACDialog className={classNames?.dialog} role={role}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n isGlobal,\n isOpen: renderProps.state.isOpen,\n })}\n </RACDialog>\n </Modal>\n </Provider>\n ),\n [\n values,\n classNames?.modal,\n classNames?.dialog,\n role,\n childrenProp,\n isGlobal,\n ],\n );\n\n useEffect(() => {\n const node = parentRef?.current;\n const port = isSSR ? null : document.createElement('div');\n\n if (node && port) {\n port.classList.add(classNames?.portal ?? '');\n\n node.appendChild(port);\n\n setPortal(port);\n }\n\n return () => {\n port?.remove();\n\n setPortal(isSSR ? null : document.body);\n };\n }, [isSSR, parentRef, classNames?.portal]);\n\n if (!portal) return null;\n\n return (\n <ModalOverlay\n {...rest}\n ref={ref}\n className={classNames?.container}\n style={style}\n UNSTABLE_portalContainer={portal}\n >\n {children}\n </ModalOverlay>\n );\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/dialog/index.tsx"],"names":["Dialog","RACDialog"],"mappings":"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","file":"index.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 { useIsSSR } from '@react-aria/ssr';\nimport {\n createContext,\n type ForwardedRef,\n forwardRef,\n type HTMLAttributes,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport {\n type ContextValue,\n DEFAULT_SLOT,\n Modal,\n ModalOverlay,\n type ModalRenderProps,\n Provider,\n Dialog as RACDialog,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useSlot } from '../../hooks/use-slot';\nimport { useTheme } from '../../hooks/use-theme';\nimport { headings } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport { AriaHeadingContext } from '../aria';\nimport { ButtonContext } from '../button';\nimport { ElementContext } from '../element';\nimport { GroupContext } from '../group';\nimport { dialogClassNames, dialogStateVars } from './dialog.css';\nimport type { OmitProtectedProps } from '../../types/props';\nimport type { ButtonProps } from '../button/types';\nimport type { ElementProps } from '../element/types';\nimport type { GroupProps } from '../group/types';\nimport type { DialogMapping, DialogProps, DialogSizes } from './types';\n\nconst dialogSizes: DialogSizes[] = ['sm', 'lg'];\n\nconst defaultMapping: DialogMapping = {\n heading: {\n sm: { className: headings.v4 },\n lg: { className: headings.v2 },\n },\n actions: {\n context: ButtonContext,\n orientation: 'horizontal',\n reverse: true,\n },\n primary: dialogSizes.reduce(\n (acc, size) => {\n acc[size] = { size };\n\n return acc;\n },\n {} as Record<DialogSizes, OmitProtectedProps<ButtonProps>>,\n ),\n close: dialogSizes.reduce(\n (acc, size) => {\n acc[size] = { size, variant: 'bare' };\n\n return acc;\n },\n {} as Record<DialogSizes, OmitProtectedProps<ButtonProps>>,\n ),\n};\n\nexport const DialogContext =\n createContext<ContextValue<DialogProps, HTMLDivElement>>(null);\n\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const [contextProps, contextRef] = useContextProps(props, ref, DialogContext);\n const finalProps = useDefaultProps(contextProps, 'Dialog');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n parentRef,\n role,\n size = 'lg',\n ...rest\n } = finalProps;\n\n const theme = useTheme();\n const isSSR = useIsSSR();\n const [portal, setPortal] = useState(isSSR ? null : document.body);\n\n const isGlobal = useMemo(\n () => !isSSR && portal === document.body,\n [isSSR, portal],\n );\n\n const mapping = useMemo(\n () => ({ ...defaultMapping, ...mappingProp }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(dialogClassNames, theme.Dialog, classNamesProp, {\n container: isGlobal ? theme.className : undefined,\n }),\n [theme.Dialog, classNamesProp, isGlobal, theme.className],\n );\n\n const [headerRef, hasHeader] = useSlot();\n\n const style = useCallback(\n ({ state, ...renderProps }: ModalRenderProps) => ({\n ...(isGlobal ? theme.style : {}),\n ...inlineVars(dialogStateVars, {\n hasHeader,\n size,\n ...renderProps,\n isGlobal,\n }),\n }),\n [size, theme.style, isGlobal, hasHeader],\n );\n\n const values = useMemo<\n [\n [\n typeof ElementContext,\n ContextValue<\n ElementProps<\n ContextValue<HTMLAttributes<HTMLElement>, HTMLHeadingElement>,\n ContextValue<\n GroupProps<ButtonProps, HTMLButtonElement>,\n HTMLDivElement\n >\n >,\n HTMLElement\n >,\n ],\n ]\n >(\n () => [\n [\n ElementContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n header: {\n as: 'header',\n className: classNames?.header,\n ref: headerRef,\n values: [\n [\n AriaHeadingContext,\n {\n ...mapping.heading[size],\n slot: 'title',\n },\n ],\n [GroupContext, null],\n ],\n },\n content: { className: classNames?.content },\n footer: {\n as: 'footer',\n className: classNames?.footer,\n values: [\n [AriaHeadingContext, null],\n [\n GroupContext,\n {\n values: {\n slots: {\n [DEFAULT_SLOT]: mapping.primary[size] ?? {},\n close: mapping.close[size] ?? {},\n },\n },\n ...mapping.actions,\n },\n ],\n ],\n },\n },\n },\n ],\n ],\n [\n classNames?.header,\n classNames?.content,\n classNames?.footer,\n headerRef,\n mapping.actions,\n mapping.heading,\n mapping.primary,\n mapping.close,\n size,\n ],\n );\n\n const children = useCallback(\n (renderProps: ModalRenderProps) => (\n <Provider values={values}>\n <Modal className={classNames?.modal}>\n <RACDialog className={classNames?.dialog} role={role}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n isGlobal,\n isOpen: renderProps.state.isOpen,\n })}\n </RACDialog>\n </Modal>\n </Provider>\n ),\n [\n values,\n classNames?.modal,\n classNames?.dialog,\n role,\n childrenProp,\n isGlobal,\n ],\n );\n\n useEffect(() => {\n const node = parentRef?.current;\n const port = isSSR ? null : document.createElement('div');\n\n if (node && port) {\n port.classList.add(classNames?.portal ?? '');\n\n node.appendChild(port);\n\n setPortal(port);\n }\n\n return () => {\n port?.remove();\n\n setPortal(isSSR ? null : document.body);\n };\n }, [isSSR, parentRef, classNames?.portal]);\n\n if (!portal) {\n return null;\n }\n\n return (\n <ModalOverlay\n {...rest}\n ref={contextRef}\n className={classNames?.container}\n style={style}\n UNSTABLE_portalContainer={portal}\n >\n {children}\n </ModalOverlay>\n );\n});\n"]}
|
|
@@ -14,34 +14,34 @@ import '../../types/generic.js';
|
|
|
14
14
|
|
|
15
15
|
declare const drawerContainer: string;
|
|
16
16
|
declare const drawerAnimationVars: {
|
|
17
|
-
delay: `var(--${string})
|
|
18
|
-
duration: `var(--${string})
|
|
19
|
-
easing: `var(--${string})
|
|
17
|
+
delay: `var(--${string})`;
|
|
18
|
+
duration: `var(--${string})`;
|
|
19
|
+
easing: `var(--${string})`;
|
|
20
20
|
};
|
|
21
21
|
declare const drawerColorVars: {
|
|
22
|
-
background: `var(--${string})
|
|
23
|
-
color: `var(--${string})
|
|
22
|
+
background: `var(--${string})`;
|
|
23
|
+
color: `var(--${string})`;
|
|
24
24
|
};
|
|
25
25
|
declare const drawerSpaceVars: {
|
|
26
26
|
drawer: {
|
|
27
|
-
width: `var(--${string})
|
|
28
|
-
gap: `var(--${string})
|
|
29
|
-
x: `var(--${string})
|
|
30
|
-
y: `var(--${string})
|
|
27
|
+
width: `var(--${string})`;
|
|
28
|
+
gap: `var(--${string})`;
|
|
29
|
+
x: `var(--${string})`;
|
|
30
|
+
y: `var(--${string})`;
|
|
31
31
|
};
|
|
32
32
|
list: {
|
|
33
|
-
top: `var(--${string})
|
|
34
|
-
translateY: `var(--${string})
|
|
33
|
+
top: `var(--${string})`;
|
|
34
|
+
translateY: `var(--${string})`;
|
|
35
35
|
};
|
|
36
36
|
};
|
|
37
37
|
declare const drawerStateVars: {
|
|
38
|
-
anchor: `var(--${string})
|
|
39
|
-
layoutShift: `var(--${string})
|
|
40
|
-
isChild: `var(--${string})
|
|
41
|
-
isOpen: `var(--${string})
|
|
38
|
+
anchor: `var(--${string})`;
|
|
39
|
+
layoutShift: `var(--${string})`;
|
|
40
|
+
isChild: `var(--${string})`;
|
|
41
|
+
isOpen: `var(--${string})`;
|
|
42
42
|
};
|
|
43
43
|
declare const drawerDialogStateVars: {
|
|
44
|
-
isChild: `var(--${string})
|
|
44
|
+
isChild: `var(--${string})`;
|
|
45
45
|
};
|
|
46
46
|
declare const drawerClassNames: DrawerClassNames;
|
|
47
47
|
|
|
@@ -32,7 +32,7 @@ var DrawerContext = createContext({
|
|
|
32
32
|
toggle: noop
|
|
33
33
|
});
|
|
34
34
|
function Drawer(props) {
|
|
35
|
-
|
|
35
|
+
const defaultedProps = useDefaultProps(props, "Drawer");
|
|
36
36
|
const {
|
|
37
37
|
children: childrenProp,
|
|
38
38
|
classNames: classNamesProp,
|
|
@@ -45,7 +45,7 @@ function Drawer(props) {
|
|
|
45
45
|
isOpen: isOpenProp,
|
|
46
46
|
onOpenChange,
|
|
47
47
|
...rest
|
|
48
|
-
} =
|
|
48
|
+
} = defaultedProps;
|
|
49
49
|
const theme = useTheme();
|
|
50
50
|
const isSSR = useIsSSR();
|
|
51
51
|
const classNames = useMemo(
|
|
@@ -119,8 +119,12 @@ function Drawer(props) {
|
|
|
119
119
|
) });
|
|
120
120
|
}
|
|
121
121
|
function DrawerTabList(props) {
|
|
122
|
-
|
|
123
|
-
const {
|
|
122
|
+
const defaultProps = useDefaultProps(props, "DrawerTabList");
|
|
123
|
+
const {
|
|
124
|
+
children,
|
|
125
|
+
classNames: classNamesProp,
|
|
126
|
+
variant = "fill"
|
|
127
|
+
} = defaultProps;
|
|
124
128
|
const { anchor } = useContext(DrawerContext);
|
|
125
129
|
const theme = useTheme();
|
|
126
130
|
const classNames = useMemo(
|
|
@@ -147,8 +151,12 @@ function DrawerTabList(props) {
|
|
|
147
151
|
) });
|
|
148
152
|
}
|
|
149
153
|
function DrawerTab(props) {
|
|
150
|
-
|
|
151
|
-
const {
|
|
154
|
+
const defaultProps = useDefaultProps(props, "DrawerTab");
|
|
155
|
+
const {
|
|
156
|
+
children: childrenProp,
|
|
157
|
+
classNames: classNamesProp,
|
|
158
|
+
...rest
|
|
159
|
+
} = defaultProps;
|
|
152
160
|
const { isOpen, open, toggle } = useContext(DrawerContext);
|
|
153
161
|
const theme = useTheme();
|
|
154
162
|
const classNames = useMemo(
|
|
@@ -194,7 +202,11 @@ var defaultMapping = {
|
|
|
194
202
|
};
|
|
195
203
|
var DrawerDialogContext = createContext(null);
|
|
196
204
|
var DrawerDialog = forwardRef(function DrawerDialog2(props, ref) {
|
|
197
|
-
[
|
|
205
|
+
const [contextProps, contextRef] = useContextProps(
|
|
206
|
+
props,
|
|
207
|
+
ref,
|
|
208
|
+
DrawerDialogContext
|
|
209
|
+
);
|
|
198
210
|
const {
|
|
199
211
|
children,
|
|
200
212
|
classNames: classNamesProp,
|
|
@@ -202,7 +214,7 @@ var DrawerDialog = forwardRef(function DrawerDialog2(props, ref) {
|
|
|
202
214
|
"aria-label": ariaLabel,
|
|
203
215
|
"aria-labelledby": ariaLabelledBy,
|
|
204
216
|
...rest
|
|
205
|
-
} =
|
|
217
|
+
} = contextProps;
|
|
206
218
|
const { close } = useContext(DrawerContext);
|
|
207
219
|
const [backRef, hasBack] = useSlot();
|
|
208
220
|
const [titleRef, hasTitle] = useSlot();
|
|
@@ -295,6 +307,7 @@ var DrawerDialog = forwardRef(function DrawerDialog2(props, ref) {
|
|
|
295
307
|
"div",
|
|
296
308
|
{
|
|
297
309
|
...rest,
|
|
310
|
+
ref: contextRef,
|
|
298
311
|
className: classNames?.dialog?.container,
|
|
299
312
|
style,
|
|
300
313
|
"aria-label": ariaLabel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/drawer/index.tsx"],"names":["isOpen","DrawerDialog"],"mappings":"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","file":"index.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 { toBoolean } from '@accelint/converters';\nimport { noop } from '@accelint/core';\nimport { useFocusWithin } from '@react-aria/interactions';\nimport { useOverlay } from '@react-aria/overlays';\nimport { useIsSSR } from '@react-aria/ssr';\nimport { useOverlayTriggerState } from '@react-stately/overlays';\nimport type { PressEvent } from '@react-types/shared';\nimport {\n type ForwardedRef,\n type HTMLAttributes,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport {\n type ContextValue,\n DEFAULT_SLOT,\n Provider,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useSlot } from '../../hooks/use-slot';\nimport { useTheme } from '../../hooks/use-theme';\nimport { headings } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport {\n callRenderProps,\n mergeClassNames,\n mergeProps,\n} from '../../utils/props';\nimport { AriaHeadingContext } from '../aria';\nimport { ButtonContext } from '../button';\nimport type { ButtonProps } from '../button/types';\nimport { ElementContext } from '../element';\nimport type { ElementProps } from '../element/types.ts';\nimport { Tab, TabList, Tabs } from '../tabs';\nimport type { TabRenderProps } from '../tabs/types';\nimport { TooltipContext, TooltipTargetContext } from '../tooltip';\nimport type { TooltipProps, TooltipTargetProps } from '../tooltip/types';\nimport {\n drawerClassNames,\n drawerDialogStateVars,\n drawerStateVars,\n} from './drawer.css';\nimport type {\n DrawerContextValue,\n DrawerDialogProps,\n DrawerMapping,\n DrawerProps,\n DrawerTabListProps,\n DrawerTabProps,\n} from './types';\n\nconst DrawerContext = createContext<DrawerContextValue>({\n anchor: 'right',\n layoutShift: false,\n isOpen: false,\n close: noop,\n open: noop,\n setOpen: noop,\n toggle: noop,\n});\n\nexport function Drawer(props: DrawerProps) {\n props = useDefaultProps(props, 'Drawer');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n anchor = 'right',\n defaultOpen = false,\n layoutShift = false,\n shouldCloseOnBlur = false,\n isDismissable = true,\n isKeyboardDismissDisabled = false,\n isOpen: isOpenProp,\n onOpenChange,\n ...rest\n } = props;\n\n const theme = useTheme();\n const isSSR = useIsSSR();\n\n const classNames = useMemo(\n () => mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp),\n [theme.Drawer, classNamesProp],\n );\n\n // Remove focus when Drawer closes\n const handleOpenChange = useCallback(\n (isOpen: boolean) => {\n if (!isOpen) {\n const focused = isSSR ? null : document.activeElement;\n\n if (\n focused &&\n 'blur' in focused &&\n typeof focused.blur === 'function'\n ) {\n focused.blur();\n }\n }\n\n onOpenChange?.(isOpen);\n },\n [isSSR, onOpenChange],\n );\n\n const state = useOverlayTriggerState({\n defaultOpen,\n isOpen: isOpenProp,\n onOpenChange: handleOpenChange,\n });\n\n const { isOpen, close, open } = state;\n const ref = useRef<HTMLDivElement>(null);\n\n const { overlayProps } = useOverlay(\n {\n isOpen,\n shouldCloseOnBlur,\n isDismissable,\n isKeyboardDismissDisabled,\n onClose: close,\n },\n ref,\n );\n\n // TODO: it may be desirable to disallow focus within the closed Drawer instead\n // If focus forces the Drawer open\n const { focusWithinProps } = useFocusWithin({\n onFocusWithin: open,\n });\n\n const context = useMemo(\n () => ({ ...state, anchor, layoutShift }),\n [state, anchor, layoutShift],\n );\n\n const values = useMemo<\n [\n [typeof DrawerContext, DrawerContextValue],\n [\n typeof DrawerDialogContext,\n ContextValue<DrawerDialogProps, HTMLDivElement>,\n ],\n ]\n >(\n () => [\n [DrawerContext, context],\n [DrawerDialogContext, { classNames }],\n ],\n [context, classNames],\n );\n\n const style = useMemo(\n () =>\n inlineVars(drawerStateVars, {\n anchor,\n layoutShift,\n isOpen,\n }),\n [anchor, layoutShift, isOpen],\n );\n\n const children = useMemo(\n () => callRenderProps(childrenProp, state),\n [childrenProp, state],\n );\n\n return (\n <Provider values={values}>\n <div\n {...mergeProps(overlayProps, focusWithinProps)}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n <Tabs classNames={classNames?.tabs} {...rest}>\n {children}\n </Tabs>\n </div>\n </Provider>\n );\n}\n\nexport function DrawerTabList<T extends object>(props: DrawerTabListProps<T>) {\n props = useDefaultProps(props, 'DrawerTabList');\n\n const { children, classNames: classNamesProp, variant = 'fill' } = props;\n const { anchor } = useContext(DrawerContext);\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp),\n [theme.Drawer, classNamesProp],\n );\n\n const values = useMemo<\n [\n [typeof TooltipContext, ContextValue<TooltipProps, HTMLDivElement>],\n [\n typeof TooltipTargetContext,\n ContextValue<TooltipTargetProps, HTMLDivElement>,\n ],\n ]\n >(\n () => [\n [TooltipContext, { placement: anchor === 'left' ? 'right' : 'left' }],\n [TooltipTargetContext, { focusable: false, relative: 'parent' }],\n ],\n [anchor],\n );\n\n return (\n <Provider values={values}>\n <TabList<T>\n classNames={classNames?.tabs}\n align='center'\n anchor={anchor === 'left' ? 'start' : 'end'}\n orientation='vertical'\n variant={variant}\n >\n {children}\n </TabList>\n </Provider>\n );\n}\n\nexport function DrawerTab(props: DrawerTabProps) {\n props = useDefaultProps(props, 'DrawerTab');\n\n const { children: childrenProp, classNames: classNamesProp, ...rest } = props;\n const { isOpen, open, toggle } = useContext(DrawerContext);\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp),\n [theme.Drawer, classNamesProp],\n );\n\n // Must bind to press start (instead of later press events) due to Tab changing selected state on start\n const handlePressStart = useCallback(\n (event: PressEvent) => {\n const { selected } = event.target.parentElement?.dataset ?? {};\n\n if (toBoolean(selected)) {\n toggle();\n } else {\n open();\n }\n },\n [open, toggle],\n );\n\n const children = useCallback(\n (renderProps: TabRenderProps) =>\n callRenderProps(childrenProp, { ...renderProps, isOpen }),\n [childrenProp, isOpen],\n );\n\n return (\n <Tab\n {...rest}\n classNames={classNames?.tabs}\n onPressStart={handlePressStart}\n >\n {children}\n </Tab>\n );\n}\n\nconst defaultMapping: DrawerMapping = {\n heading: {\n child: headings.v4,\n parent: headings.v3,\n },\n back: {\n variant: 'icon',\n },\n close: {\n variant: 'icon',\n },\n};\n\nexport const DrawerDialogContext =\n createContext<ContextValue<DrawerDialogProps, HTMLDivElement>>(null);\n\nexport const DrawerDialog = forwardRef(function DrawerDialog(\n props: DrawerDialogProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, DrawerDialogContext);\n\n const {\n children,\n classNames: classNamesProp,\n mapping: mappingProp,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const { close } = useContext(DrawerContext);\n const [backRef, hasBack] = useSlot();\n const [titleRef, hasTitle] = useSlot();\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({ ...defaultMapping, ...mappingProp }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp, {\n header: {\n title: hasBack ? mapping.heading.child : mapping.heading.parent,\n },\n }),\n [theme.Drawer, classNamesProp, hasBack, mapping],\n );\n\n const style = useMemo(\n () =>\n inlineVars(drawerDialogStateVars, {\n isChild: !!hasBack,\n }),\n [hasBack],\n );\n\n const values = useMemo<\n [\n [\n typeof ElementContext,\n ContextValue<\n ElementProps<\n ContextValue<ButtonProps, HTMLButtonElement>,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLHeadingElement>\n >,\n HTMLElement\n >,\n ],\n ]\n >(\n () => [\n [\n ElementContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n header: {\n as: 'header',\n className: classNames?.header?.header,\n values: [\n [\n ButtonContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n back: {\n ...mapping.back,\n ref: backRef,\n classNames: classNames?.header?.back,\n },\n close: {\n ...mapping.close,\n classNames: classNames?.header?.close,\n onPress: close,\n },\n },\n },\n ],\n [\n AriaHeadingContext,\n {\n slots: {\n title: {\n ref: titleRef,\n className: classNames?.header?.title,\n },\n },\n },\n ],\n ],\n },\n content: { className: classNames?.content },\n footer: { as: 'footer', className: classNames?.footer },\n },\n },\n ],\n ],\n [\n classNames?.header?.header,\n classNames?.header?.back,\n classNames?.header?.close,\n classNames?.header?.title,\n classNames?.content,\n classNames?.footer,\n backRef,\n close,\n mapping,\n titleRef,\n ],\n );\n\n // biome-ignore lint/complexity/useSimplifiedLogicExpression: intentional\n if (!ariaLabel && !ariaLabelledBy && !hasTitle) {\n console.warn(\n 'If a Drawer does not contain a <Heading slot=\"title\">, it must have an aria-label or aria-labelledby attribute for accessibility.',\n );\n }\n\n return (\n <Provider values={values}>\n <div\n {...rest}\n className={classNames?.dialog?.container}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n <div className={classNames?.dialog?.dialog}>{children}</div>\n </div>\n </Provider>\n );\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/drawer/index.tsx"],"names":["isOpen","DrawerDialog"],"mappings":"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","file":"index.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 { toBoolean } from '@accelint/converters';\nimport { noop } from '@accelint/core';\nimport { useFocusWithin } from '@react-aria/interactions';\nimport { useOverlay } from '@react-aria/overlays';\nimport { useIsSSR } from '@react-aria/ssr';\nimport { useOverlayTriggerState } from '@react-stately/overlays';\nimport {\n createContext,\n type ForwardedRef,\n forwardRef,\n type HTMLAttributes,\n useCallback,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport {\n type ContextValue,\n DEFAULT_SLOT,\n Provider,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useSlot } from '../../hooks/use-slot';\nimport { useTheme } from '../../hooks/use-theme';\nimport { headings } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport {\n callRenderProps,\n mergeClassNames,\n mergeProps,\n} from '../../utils/props';\nimport { AriaHeadingContext } from '../aria';\nimport { ButtonContext } from '../button';\nimport { ElementContext } from '../element';\nimport { Tab, TabList, Tabs } from '../tabs';\nimport { TooltipContext, TooltipTargetContext } from '../tooltip';\nimport {\n drawerClassNames,\n drawerDialogStateVars,\n drawerStateVars,\n} from './drawer.css';\nimport type { PressEvent } from '@react-types/shared';\nimport type { ButtonProps } from '../button/types';\nimport type { ElementProps } from '../element/types.ts';\nimport type { TabRenderProps } from '../tabs/types';\nimport type { TooltipProps, TooltipTargetProps } from '../tooltip/types';\nimport type {\n DrawerContextValue,\n DrawerDialogProps,\n DrawerMapping,\n DrawerProps,\n DrawerTabListProps,\n DrawerTabProps,\n} from './types';\n\nconst DrawerContext = createContext<DrawerContextValue>({\n anchor: 'right',\n layoutShift: false,\n isOpen: false,\n close: noop,\n open: noop,\n setOpen: noop,\n toggle: noop,\n});\n\nexport function Drawer(props: DrawerProps) {\n const defaultedProps = useDefaultProps(props, 'Drawer');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n anchor = 'right',\n defaultOpen = false,\n layoutShift = false,\n shouldCloseOnBlur = false,\n isDismissable = true,\n isKeyboardDismissDisabled = false,\n isOpen: isOpenProp,\n onOpenChange,\n ...rest\n } = defaultedProps;\n\n const theme = useTheme();\n const isSSR = useIsSSR();\n\n const classNames = useMemo(\n () => mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp),\n [theme.Drawer, classNamesProp],\n );\n\n // Remove focus when Drawer closes\n const handleOpenChange = useCallback(\n (isOpen: boolean) => {\n if (!isOpen) {\n const focused = isSSR ? null : document.activeElement;\n\n if (\n focused &&\n 'blur' in focused &&\n typeof focused.blur === 'function'\n ) {\n focused.blur();\n }\n }\n\n onOpenChange?.(isOpen);\n },\n [isSSR, onOpenChange],\n );\n\n const state = useOverlayTriggerState({\n defaultOpen,\n isOpen: isOpenProp,\n onOpenChange: handleOpenChange,\n });\n\n const { isOpen, close, open } = state;\n const ref = useRef<HTMLDivElement>(null);\n\n const { overlayProps } = useOverlay(\n {\n isOpen,\n shouldCloseOnBlur,\n isDismissable,\n isKeyboardDismissDisabled,\n onClose: close,\n },\n ref,\n );\n\n // TODO: it may be desirable to disallow focus within the closed Drawer instead\n // If focus forces the Drawer open\n const { focusWithinProps } = useFocusWithin({\n onFocusWithin: open,\n });\n\n const context = useMemo(\n () => ({ ...state, anchor, layoutShift }),\n [state, anchor, layoutShift],\n );\n\n const values = useMemo<\n [\n [typeof DrawerContext, DrawerContextValue],\n [\n typeof DrawerDialogContext,\n ContextValue<DrawerDialogProps, HTMLDivElement>,\n ],\n ]\n >(\n () => [\n [DrawerContext, context],\n [DrawerDialogContext, { classNames }],\n ],\n [context, classNames],\n );\n\n const style = useMemo(\n () =>\n inlineVars(drawerStateVars, {\n anchor,\n layoutShift,\n isOpen,\n }),\n [anchor, layoutShift, isOpen],\n );\n\n const children = useMemo(\n () => callRenderProps(childrenProp, state),\n [childrenProp, state],\n );\n\n return (\n <Provider values={values}>\n <div\n {...mergeProps(overlayProps, focusWithinProps)}\n ref={ref}\n className={classNames?.container}\n style={style}\n >\n <Tabs classNames={classNames?.tabs} {...rest}>\n {children}\n </Tabs>\n </div>\n </Provider>\n );\n}\n\nexport function DrawerTabList<T extends object>(props: DrawerTabListProps<T>) {\n const defaultProps = useDefaultProps(props, 'DrawerTabList');\n\n const {\n children,\n classNames: classNamesProp,\n variant = 'fill',\n } = defaultProps;\n const { anchor } = useContext(DrawerContext);\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp),\n [theme.Drawer, classNamesProp],\n );\n\n const values = useMemo<\n [\n [typeof TooltipContext, ContextValue<TooltipProps, HTMLDivElement>],\n [\n typeof TooltipTargetContext,\n ContextValue<TooltipTargetProps, HTMLDivElement>,\n ],\n ]\n >(\n () => [\n [TooltipContext, { placement: anchor === 'left' ? 'right' : 'left' }],\n [TooltipTargetContext, { focusable: false, relative: 'parent' }],\n ],\n [anchor],\n );\n\n return (\n <Provider values={values}>\n <TabList<T>\n classNames={classNames?.tabs}\n align='center'\n anchor={anchor === 'left' ? 'start' : 'end'}\n orientation='vertical'\n variant={variant}\n >\n {children}\n </TabList>\n </Provider>\n );\n}\n\nexport function DrawerTab(props: DrawerTabProps) {\n const defaultProps = useDefaultProps(props, 'DrawerTab');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n ...rest\n } = defaultProps;\n\n const { isOpen, open, toggle } = useContext(DrawerContext);\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp),\n [theme.Drawer, classNamesProp],\n );\n\n // Must bind to press start (instead of later press events) due to Tab changing selected state on start\n const handlePressStart = useCallback(\n (event: PressEvent) => {\n const { selected } = event.target.parentElement?.dataset ?? {};\n\n if (toBoolean(selected)) {\n toggle();\n } else {\n open();\n }\n },\n [open, toggle],\n );\n\n const children = useCallback(\n (renderProps: TabRenderProps) =>\n callRenderProps(childrenProp, { ...renderProps, isOpen }),\n [childrenProp, isOpen],\n );\n\n return (\n <Tab\n {...rest}\n classNames={classNames?.tabs}\n onPressStart={handlePressStart}\n >\n {children}\n </Tab>\n );\n}\n\nconst defaultMapping: DrawerMapping = {\n heading: {\n child: headings.v4,\n parent: headings.v3,\n },\n back: {\n variant: 'icon',\n },\n close: {\n variant: 'icon',\n },\n};\n\nexport const DrawerDialogContext =\n createContext<ContextValue<DrawerDialogProps, HTMLDivElement>>(null);\n\nexport const DrawerDialog = forwardRef(function DrawerDialog(\n props: DrawerDialogProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const [contextProps, contextRef] = useContextProps(\n props,\n ref,\n DrawerDialogContext,\n );\n\n const {\n children,\n classNames: classNamesProp,\n mapping: mappingProp,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = contextProps;\n\n const { close } = useContext(DrawerContext);\n const [backRef, hasBack] = useSlot();\n const [titleRef, hasTitle] = useSlot();\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({ ...defaultMapping, ...mappingProp }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(drawerClassNames, theme.Drawer, classNamesProp, {\n header: {\n title: hasBack ? mapping.heading.child : mapping.heading.parent,\n },\n }),\n [theme.Drawer, classNamesProp, hasBack, mapping],\n );\n\n const style = useMemo(\n () =>\n inlineVars(drawerDialogStateVars, {\n isChild: !!hasBack,\n }),\n [hasBack],\n );\n\n const values = useMemo<\n [\n [\n typeof ElementContext,\n ContextValue<\n ElementProps<\n ContextValue<ButtonProps, HTMLButtonElement>,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLHeadingElement>\n >,\n HTMLElement\n >,\n ],\n ]\n >(\n () => [\n [\n ElementContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n header: {\n as: 'header',\n className: classNames?.header?.header,\n values: [\n [\n ButtonContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n back: {\n ...mapping.back,\n ref: backRef,\n classNames: classNames?.header?.back,\n },\n close: {\n ...mapping.close,\n classNames: classNames?.header?.close,\n onPress: close,\n },\n },\n },\n ],\n [\n AriaHeadingContext,\n {\n slots: {\n title: {\n ref: titleRef,\n className: classNames?.header?.title,\n },\n },\n },\n ],\n ],\n },\n content: { className: classNames?.content },\n footer: { as: 'footer', className: classNames?.footer },\n },\n },\n ],\n ],\n [\n classNames?.header?.header,\n classNames?.header?.back,\n classNames?.header?.close,\n classNames?.header?.title,\n classNames?.content,\n classNames?.footer,\n backRef,\n close,\n mapping,\n titleRef,\n ],\n );\n\n // biome-ignore lint/complexity/useSimplifiedLogicExpression: intentional\n if (!ariaLabel && !ariaLabelledBy && !hasTitle) {\n console.warn(\n 'If a Drawer does not contain a <Heading slot=\"title\">, it must have an aria-label or aria-labelledby attribute for accessibility.',\n );\n }\n\n return (\n <Provider values={values}>\n {/** biome-ignore lint/a11y/useAriaPropsSupportedByRole: Legacy */}\n <div\n {...rest}\n ref={contextRef}\n className={classNames?.dialog?.container}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n <div className={classNames?.dialog?.dialog}>{children}</div>\n </div>\n </Provider>\n );\n});\n"]}
|
|
@@ -7,7 +7,7 @@ declare const ElementContext: react.Context<ContextValue<ElementProps<any, any,
|
|
|
7
7
|
/**
|
|
8
8
|
* This generic component serves as any easy way for more complex components
|
|
9
9
|
* to establish stylable content areas within their layout with optional
|
|
10
|
-
*
|
|
10
|
+
* targeted contexts for any subcomponents
|
|
11
11
|
*
|
|
12
12
|
* See Dialog & Drawer as examples
|
|
13
13
|
*/
|