fictoan-react 2.0.0-beta.18 → 2.0.0-beta.19

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 (85) hide show
  1. package/dist/components/Badge/Badge.d.ts.map +1 -1
  2. package/dist/components/Badge/Badge.js +17 -18
  3. package/dist/components/Badge/Badge.js.map +1 -1
  4. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  5. package/dist/components/Breadcrumbs/Breadcrumbs.js +37 -38
  6. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  7. package/dist/components/Callout/Callout.d.ts.map +1 -1
  8. package/dist/components/Callout/Callout.js +31 -25
  9. package/dist/components/Callout/Callout.js.map +1 -1
  10. package/dist/components/Divider/Divider.js +7 -7
  11. package/dist/components/Divider/Divider.js.map +1 -1
  12. package/dist/components/Element/Element.d.ts.map +1 -1
  13. package/dist/components/Element/Element.js +135 -133
  14. package/dist/components/Element/Element.js.map +1 -1
  15. package/dist/components/Element/constants.d.ts +21 -21
  16. package/dist/components/Element/constants.d.ts.map +1 -1
  17. package/dist/components/Element/constants.js.map +1 -1
  18. package/dist/components/Form/Checkbox/Switch.d.ts.map +1 -1
  19. package/dist/components/Form/Checkbox/Switch.js +11 -10
  20. package/dist/components/Form/Checkbox/Switch.js.map +1 -1
  21. package/dist/components/Form/FormItemGroup/FormItemGroup.d.ts.map +1 -1
  22. package/dist/components/Form/FormItemGroup/FormItemGroup.js +17 -17
  23. package/dist/components/Form/FormItemGroup/FormItemGroup.js.map +1 -1
  24. package/dist/components/Form/ListBox/ListBox.d.ts +1 -1
  25. package/dist/components/Form/ListBox/ListBox.d.ts.map +1 -1
  26. package/dist/components/Form/ListBox/ListBox.js +110 -107
  27. package/dist/components/Form/ListBox/ListBox.js.map +1 -1
  28. package/dist/components/Form/RadioButton/RadioTabGroup.d.ts +1 -1
  29. package/dist/components/Form/RadioButton/RadioTabGroup.js +46 -46
  30. package/dist/components/Form/RadioButton/RadioTabGroup.js.map +1 -1
  31. package/dist/components/Form/Select/Select.d.ts +1 -1
  32. package/dist/components/Form/Select/Select.d.ts.map +1 -1
  33. package/dist/components/Meter/Meter.d.ts.map +1 -1
  34. package/dist/components/Meter/Meter.js +54 -59
  35. package/dist/components/Meter/Meter.js.map +1 -1
  36. package/dist/components/Modal/Modal.d.ts.map +1 -1
  37. package/dist/components/Modal/Modal.js +20 -19
  38. package/dist/components/Modal/Modal.js.map +1 -1
  39. package/dist/components/Notification/NotificationsProvider/NotificationsProvider.d.ts.map +1 -1
  40. package/dist/components/Notification/NotificationsProvider/NotificationsProvider.js +44 -44
  41. package/dist/components/Notification/NotificationsProvider/NotificationsProvider.js.map +1 -1
  42. package/dist/components/Pagination/Pagination.d.ts +1 -1
  43. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  44. package/dist/components/Pagination/Pagination.js +42 -41
  45. package/dist/components/Pagination/Pagination.js.map +1 -1
  46. package/dist/components/Portion/Portion.d.ts +1 -0
  47. package/dist/components/Portion/Portion.d.ts.map +1 -1
  48. package/dist/components/Portion/Portion.js +13 -12
  49. package/dist/components/Portion/Portion.js.map +1 -1
  50. package/dist/components/ProgressBar/ProgressBar.d.ts.map +1 -1
  51. package/dist/components/ProgressBar/ProgressBar.js +23 -26
  52. package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
  53. package/dist/components/Row/Row.d.ts +1 -0
  54. package/dist/components/Row/Row.d.ts.map +1 -1
  55. package/dist/components/Row/Row.js +22 -22
  56. package/dist/components/Row/Row.js.map +1 -1
  57. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  58. package/dist/components/Skeleton/Skeleton.js +25 -27
  59. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  60. package/dist/components/Table/Table.d.ts +0 -1
  61. package/dist/components/Table/Table.d.ts.map +1 -1
  62. package/dist/components/Table/Table.js +21 -34
  63. package/dist/components/Table/Table.js.map +1 -1
  64. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  65. package/dist/components/Tabs/Tabs.js +49 -47
  66. package/dist/components/Tabs/Tabs.js.map +1 -1
  67. package/dist/components/Toast/ToastsProvider/ToastsProvider.d.ts.map +1 -1
  68. package/dist/components/Toast/ToastsProvider/ToastsProvider.js +22 -22
  69. package/dist/components/Toast/ToastsProvider/ToastsProvider.js.map +1 -1
  70. package/dist/components/Typography/Heading.js +11 -11
  71. package/dist/components/Typography/Heading.js.map +1 -1
  72. package/dist/components/Typography/Text.js +7 -7
  73. package/dist/components/Typography/Text.js.map +1 -1
  74. package/dist/fictoan-schema.json +33 -37
  75. package/dist/index.css +3 -3
  76. package/dist/index.d.ts +2 -1
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +129 -127
  79. package/dist/index.js.map +1 -1
  80. package/dist/utils/classNames.d.ts +1 -1
  81. package/dist/utils/classNames.d.ts.map +1 -1
  82. package/dist/utils/classNames.js.map +1 -1
  83. package/dist/utils/propSeparation.js +4 -4
  84. package/dist/utils/propSeparation.js.map +1 -1
  85. package/package.json +14 -3
package/dist/index.d.ts CHANGED
@@ -29,6 +29,7 @@ export { ToastsProvider, useToasts, type ToastsProviderProps, type ToastFunction
29
29
  export { Tooltip, type TooltipProps } from './components/Tooltip';
30
30
  export { useViewTransition } from './hooks/UseViewTransition';
31
31
  export { Text, type TextProps, Heading1, Heading2, Heading3, Heading4, Heading5, Heading6, type HeadingProps, } from './components/Typography';
32
- export { BasicColours, FictoanColours, type ColourPropTypes, type EmphasisTypes, type SpacingTypes, type ShadowTypes, type ShapeTypes, type OpacityTypes, type WeightTypes, type ButtonVariantTypes, } from './components/Element/constants';
32
+ export { BasicColours, FictoanColours, type ColourPropTypes, type EmphasisTypes, type SpacingTypes, type ShadowTypes, type ShapeTypes, type OpacityTypes, type WeightTypes, type ButtonVariantTypes, type CommonProps, type CommonAndHTMLProps, type FlexibleEventHandler, } from './components/Element/constants';
33
33
  export { oklchColourDefinitions, type ColourDefinition, type OklchColourName, } from './styles/colours';
34
+ export { useClickOutside } from './hooks/UseClickOutside';
34
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -12,137 +12,139 @@
12
12
  import { useViewTransition as u } from "./hooks/UseViewTransition.js";
13
13
  import { BasicColours as l, FictoanColours as c } from "./components/Element/constants.js";
14
14
  import { oklchColourDefinitions as S } from "./styles/colours.js";
15
- import { Accordion as T } from "./components/Accordion/Accordion.js";
16
- import { Badge as B } from "./components/Badge/Badge.js";
17
- import { Breadcrumbs as F } from "./components/Breadcrumbs/Breadcrumbs.js";
18
- import { Button as h } from "./components/Button/Button.js";
19
- import { ButtonGroup as I } from "./components/ButtonGroup/ButtonGroup.js";
20
- import { Callout as v } from "./components/Callout/Callout.js";
21
- import { Card as R } from "./components/Card/Card.js";
22
- import { CodeBlock as D } from "./components/CodeBlock/CodeBlock.js";
23
- import { Divider as M } from "./components/Divider/Divider.js";
24
- import { Drawer as y } from "./components/Drawer/Drawer.js";
25
- import { Element as W } from "./components/Element/Element.js";
26
- import { Article as U, Aside as V, Body as j, Div as q, Footer as z, Header as J, Hyperlink as K, Main as Q, Nav as X, Section as Y, Span as Z } from "./components/Element/Tags.js";
27
- import { Form as $ } from "./components/Form/Form/Form.js";
28
- import { FormItem as ro } from "./components/Form/FormItem/FormItem.js";
29
- import { FormItemGroup as to } from "./components/Form/FormItemGroup/FormItemGroup.js";
30
- import { InputField as mo } from "./components/Form/InputField/InputField.js";
31
- import { TextArea as xo } from "./components/Form/TextArea/TextArea.js";
32
- import { InputLabel as ao } from "./components/Form/InputLabel/InputLabel.js";
33
- import { Select as uo } from "./components/Form/Select/Select.js";
34
- import { FileUpload as lo } from "./components/Form/FileUpload/FileUpload.js";
35
- import { RadioGroup as Co } from "./components/Form/RadioButton/RadioGroup.js";
36
- import { RadioButton as bo } from "./components/Form/RadioButton/RadioButton.js";
37
- import { Checkbox as go } from "./components/Form/Checkbox/Checkbox.js";
38
- import { CheckboxGroup as Go, SwitchGroup as Fo } from "./components/Form/Checkbox/CheckboxAndSwitchGroup.js";
39
- import { Switch as ho } from "./components/Form/Checkbox/Switch.js";
40
- import { Range as Io } from "./components/Form/Range/Range.js";
41
- import { RadioTabGroup as vo } from "./components/Form/RadioButton/RadioTabGroup.js";
42
- import { PinInputField as Ro } from "./components/Form/PinInputField/PinInputField.js";
43
- import { ListBox as Do } from "./components/Form/ListBox/ListBox.js";
44
- import { Meter as Mo } from "./components/Meter/Meter.js";
45
- import { Modal as yo } from "./components/Modal/Modal.js";
46
- import { NotificationsProvider as Wo, useNotifications as Eo } from "./components/Notification/NotificationsProvider/NotificationsProvider.js";
47
- import { OptionCard as Vo, OptionCardsGroup as jo, useOptionCard as qo, useOptionCardsGroup as zo } from "./components/OptionCard/OptionCard.js";
48
- import { Pagination as Ko } from "./components/Pagination/Pagination.js";
49
- import { Portion as Xo } from "./components/Portion/Portion.js";
50
- import { ProgressBar as Zo } from "./components/ProgressBar/ProgressBar.js";
51
- import { Row as $o } from "./components/Row/Row.js";
52
- import { SidebarWrapper as rr } from "./components/Sidebar/SidebarWrapper/SidebarWrapper.js";
53
- import { ContentWrapper as tr } from "./components/Sidebar/ContentWrapper/ContentWrapper.js";
54
- import { SidebarHeader as mr } from "./components/Sidebar/SidebarHeader/SidebarHeader.js";
55
- import { SidebarItemsGroup as xr } from "./components/Sidebar/SidebarItemsGroup/SidebarItemsGroup.js";
56
- import { SidebarItem as ar } from "./components/Sidebar/SidebarItem/SidebarItem.js";
57
- import { SidebarFooter as dr } from "./components/Sidebar/SidebarFooter/SidebarFooter.js";
58
- import { Skeleton as sr, SkeletonGroup as lr } from "./components/Skeleton/Skeleton.js";
59
- import { Spinner as Cr } from "./components/Spinner/Spinner.js";
60
- import { Table as br } from "./components/Table/Table.js";
61
- import { Tabs as gr } from "./components/Tabs/Tabs.js";
62
- import { ThemeProvider as Gr, useTheme as Fr } from "./components/ThemeProvider/ThemeProvider.js";
63
- import { ToastsProvider as hr, useToasts as kr } from "./components/Toast/ToastsProvider/ToastsProvider.js";
64
- import { Tooltip as Pr } from "./components/Tooltip/Tooltip.js";
65
- import { Text as wr } from "./components/Typography/Text.js";
66
- import { Heading1 as Ar, Heading2 as Dr, Heading3 as Or, Heading4 as Mr, Heading5 as Nr, Heading6 as yr } from "./components/Typography/Heading.js";
15
+ import { useClickOutside as T } from "./hooks/UseClickOutside.js";
16
+ import { Accordion as B } from "./components/Accordion/Accordion.js";
17
+ import { Badge as F } from "./components/Badge/Badge.js";
18
+ import { Breadcrumbs as k } from "./components/Breadcrumbs/Breadcrumbs.js";
19
+ import { Button as I } from "./components/Button/Button.js";
20
+ import { ButtonGroup as v } from "./components/ButtonGroup/ButtonGroup.js";
21
+ import { Callout as O } from "./components/Callout/Callout.js";
22
+ import { Card as A } from "./components/Card/Card.js";
23
+ import { CodeBlock as M } from "./components/CodeBlock/CodeBlock.js";
24
+ import { Divider as y } from "./components/Divider/Divider.js";
25
+ import { Drawer as W } from "./components/Drawer/Drawer.js";
26
+ import { Element as U } from "./components/Element/Element.js";
27
+ import { Article as j, Aside as q, Body as z, Div as J, Footer as K, Header as Q, Hyperlink as X, Main as Y, Nav as Z, Section as _, Span as $ } from "./components/Element/Tags.js";
28
+ import { Form as ro } from "./components/Form/Form/Form.js";
29
+ import { FormItem as to } from "./components/Form/FormItem/FormItem.js";
30
+ import { FormItemGroup as mo } from "./components/Form/FormItemGroup/FormItemGroup.js";
31
+ import { InputField as xo } from "./components/Form/InputField/InputField.js";
32
+ import { TextArea as ao } from "./components/Form/TextArea/TextArea.js";
33
+ import { InputLabel as uo } from "./components/Form/InputLabel/InputLabel.js";
34
+ import { Select as lo } from "./components/Form/Select/Select.js";
35
+ import { FileUpload as Co } from "./components/Form/FileUpload/FileUpload.js";
36
+ import { RadioGroup as bo } from "./components/Form/RadioButton/RadioGroup.js";
37
+ import { RadioButton as go } from "./components/Form/RadioButton/RadioButton.js";
38
+ import { Checkbox as Go } from "./components/Form/Checkbox/Checkbox.js";
39
+ import { CheckboxGroup as Ho, SwitchGroup as ko } from "./components/Form/Checkbox/CheckboxAndSwitchGroup.js";
40
+ import { Switch as Io } from "./components/Form/Checkbox/Switch.js";
41
+ import { Range as vo } from "./components/Form/Range/Range.js";
42
+ import { RadioTabGroup as Oo } from "./components/Form/RadioButton/RadioTabGroup.js";
43
+ import { PinInputField as Ao } from "./components/Form/PinInputField/PinInputField.js";
44
+ import { ListBox as Mo } from "./components/Form/ListBox/ListBox.js";
45
+ import { Meter as yo } from "./components/Meter/Meter.js";
46
+ import { Modal as Wo } from "./components/Modal/Modal.js";
47
+ import { NotificationsProvider as Uo, useNotifications as Vo } from "./components/Notification/NotificationsProvider/NotificationsProvider.js";
48
+ import { OptionCard as qo, OptionCardsGroup as zo, useOptionCard as Jo, useOptionCardsGroup as Ko } from "./components/OptionCard/OptionCard.js";
49
+ import { Pagination as Xo } from "./components/Pagination/Pagination.js";
50
+ import { Portion as Zo } from "./components/Portion/Portion.js";
51
+ import { ProgressBar as $o } from "./components/ProgressBar/ProgressBar.js";
52
+ import { Row as rr } from "./components/Row/Row.js";
53
+ import { SidebarWrapper as tr } from "./components/Sidebar/SidebarWrapper/SidebarWrapper.js";
54
+ import { ContentWrapper as mr } from "./components/Sidebar/ContentWrapper/ContentWrapper.js";
55
+ import { SidebarHeader as xr } from "./components/Sidebar/SidebarHeader/SidebarHeader.js";
56
+ import { SidebarItemsGroup as ar } from "./components/Sidebar/SidebarItemsGroup/SidebarItemsGroup.js";
57
+ import { SidebarItem as dr } from "./components/Sidebar/SidebarItem/SidebarItem.js";
58
+ import { SidebarFooter as sr } from "./components/Sidebar/SidebarFooter/SidebarFooter.js";
59
+ import { Skeleton as cr, SkeletonGroup as Cr } from "./components/Skeleton/Skeleton.js";
60
+ import { Spinner as br } from "./components/Spinner/Spinner.js";
61
+ import { Table as gr } from "./components/Table/Table.js";
62
+ import { Tabs as Gr } from "./components/Tabs/Tabs.js";
63
+ import { ThemeProvider as Hr, useTheme as kr } from "./components/ThemeProvider/ThemeProvider.js";
64
+ import { ToastsProvider as Ir, useToasts as Pr } from "./components/Toast/ToastsProvider/ToastsProvider.js";
65
+ import { Tooltip as wr } from "./components/Tooltip/Tooltip.js";
66
+ import { Text as Rr } from "./components/Typography/Text.js";
67
+ import { Heading1 as Dr, Heading2 as Mr, Heading3 as Nr, Heading4 as yr, Heading5 as Lr, Heading6 as Wr } from "./components/Typography/Heading.js";
67
68
  export {
68
- T as Accordion,
69
- U as Article,
70
- V as Aside,
71
- B as Badge,
69
+ B as Accordion,
70
+ j as Article,
71
+ q as Aside,
72
+ F as Badge,
72
73
  l as BasicColours,
73
- j as Body,
74
- F as Breadcrumbs,
75
- h as Button,
76
- I as ButtonGroup,
77
- v as Callout,
78
- R as Card,
79
- go as Checkbox,
80
- Go as CheckboxGroup,
81
- D as CodeBlock,
82
- tr as ContentWrapper,
83
- q as Div,
84
- M as Divider,
85
- y as Drawer,
86
- W as Element,
74
+ z as Body,
75
+ k as Breadcrumbs,
76
+ I as Button,
77
+ v as ButtonGroup,
78
+ O as Callout,
79
+ A as Card,
80
+ Go as Checkbox,
81
+ Ho as CheckboxGroup,
82
+ M as CodeBlock,
83
+ mr as ContentWrapper,
84
+ J as Div,
85
+ y as Divider,
86
+ W as Drawer,
87
+ U as Element,
87
88
  c as FictoanColours,
88
- lo as FileUpload,
89
- z as Footer,
90
- $ as Form,
91
- ro as FormItem,
92
- to as FormItemGroup,
93
- J as Header,
94
- Ar as Heading1,
95
- Dr as Heading2,
96
- Or as Heading3,
97
- Mr as Heading4,
98
- Nr as Heading5,
99
- yr as Heading6,
100
- K as Hyperlink,
101
- mo as InputField,
102
- ao as InputLabel,
103
- Do as ListBox,
104
- Q as Main,
105
- Mo as Meter,
106
- yo as Modal,
107
- X as Nav,
108
- Wo as NotificationsProvider,
109
- Vo as OptionCard,
110
- jo as OptionCardsGroup,
111
- Ko as Pagination,
112
- Ro as PinInputField,
113
- Xo as Portion,
114
- Zo as ProgressBar,
115
- bo as RadioButton,
116
- Co as RadioGroup,
117
- vo as RadioTabGroup,
118
- Io as Range,
119
- $o as Row,
120
- Y as Section,
121
- uo as Select,
122
- dr as SidebarFooter,
123
- mr as SidebarHeader,
124
- ar as SidebarItem,
125
- xr as SidebarItemsGroup,
126
- rr as SidebarWrapper,
127
- sr as Skeleton,
128
- lr as SkeletonGroup,
129
- Z as Span,
130
- Cr as Spinner,
131
- ho as Switch,
132
- Fo as SwitchGroup,
133
- br as Table,
134
- gr as Tabs,
135
- wr as Text,
136
- xo as TextArea,
137
- Gr as ThemeProvider,
138
- hr as ToastsProvider,
139
- Pr as Tooltip,
89
+ Co as FileUpload,
90
+ K as Footer,
91
+ ro as Form,
92
+ to as FormItem,
93
+ mo as FormItemGroup,
94
+ Q as Header,
95
+ Dr as Heading1,
96
+ Mr as Heading2,
97
+ Nr as Heading3,
98
+ yr as Heading4,
99
+ Lr as Heading5,
100
+ Wr as Heading6,
101
+ X as Hyperlink,
102
+ xo as InputField,
103
+ uo as InputLabel,
104
+ Mo as ListBox,
105
+ Y as Main,
106
+ yo as Meter,
107
+ Wo as Modal,
108
+ Z as Nav,
109
+ Uo as NotificationsProvider,
110
+ qo as OptionCard,
111
+ zo as OptionCardsGroup,
112
+ Xo as Pagination,
113
+ Ao as PinInputField,
114
+ Zo as Portion,
115
+ $o as ProgressBar,
116
+ go as RadioButton,
117
+ bo as RadioGroup,
118
+ Oo as RadioTabGroup,
119
+ vo as Range,
120
+ rr as Row,
121
+ _ as Section,
122
+ lo as Select,
123
+ sr as SidebarFooter,
124
+ xr as SidebarHeader,
125
+ dr as SidebarItem,
126
+ ar as SidebarItemsGroup,
127
+ tr as SidebarWrapper,
128
+ cr as Skeleton,
129
+ Cr as SkeletonGroup,
130
+ $ as Span,
131
+ br as Spinner,
132
+ Io as Switch,
133
+ ko as SwitchGroup,
134
+ gr as Table,
135
+ Gr as Tabs,
136
+ Rr as Text,
137
+ ao as TextArea,
138
+ Hr as ThemeProvider,
139
+ Ir as ToastsProvider,
140
+ wr as Tooltip,
140
141
  S as oklchColourDefinitions,
141
- Eo as useNotifications,
142
- qo as useOptionCard,
143
- zo as useOptionCardsGroup,
144
- Fr as useTheme,
145
- kr as useToasts,
142
+ T as useClickOutside,
143
+ Vo as useNotifications,
144
+ Jo as useOptionCard,
145
+ Ko as useOptionCardsGroup,
146
+ kr as useTheme,
147
+ Pr as useToasts,
146
148
  u as useViewTransition
147
149
  };
148
150
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- export declare const createClassName: (classNames: any[]) => string;
1
+ export declare const createClassName: (classNames: (string | number | boolean | null | undefined)[]) => string;
2
2
  //# sourceMappingURL=classNames.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../src/utils/classNames.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,GAAI,YAAY,GAAG,EAAE,KAAG,MAEnD,CAAC"}
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../src/utils/classNames.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,GAAI,YAAY,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,KAAG,MAE9F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"classNames.js","sources":["../../src/utils/classNames.ts"],"sourcesContent":["export const createClassName = (classNames: any[]): string => {\n return classNames.filter((item) => !!item).join(\" \");\n};\n"],"names":["createClassName","classNames","item"],"mappings":"AAAO,MAAMA,IAAkB,CAACC,MACrBA,EAAW,OAAO,CAACC,MAAS,CAAC,CAACA,CAAI,EAAE,KAAK,GAAG;"}
1
+ {"version":3,"file":"classNames.js","sources":["../../src/utils/classNames.ts"],"sourcesContent":["export const createClassName = (classNames: (string | number | boolean | null | undefined)[]): string => {\n return classNames.filter((item) => !!item).join(\" \");\n};\n"],"names":["createClassName","classNames","item"],"mappings":"AAAO,MAAMA,IAAkB,CAACC,MACrBA,EAAW,OAAO,CAACC,MAAS,CAAC,CAACA,CAAI,EAAE,KAAK,GAAG;"}
@@ -19,8 +19,8 @@ const l = [
19
19
  "opacity",
20
20
  // Layout
21
21
  "layoutAsFlexbox",
22
- "stackVertically",
23
- "stackHorizontally",
22
+ "listVertically",
23
+ "listHorizontally",
24
24
  "layoutAsGrid",
25
25
  "columns",
26
26
  "gap",
@@ -62,7 +62,7 @@ const l = [
62
62
  "weight",
63
63
  // Custom classes
64
64
  "classNames"
65
- ], a = (t) => {
65
+ ], i = (t) => {
66
66
  const e = {}, r = {};
67
67
  for (const o of Object.keys(t))
68
68
  l.includes(o) ? e[o] = t[o] : r[o] = t[o];
@@ -72,6 +72,6 @@ const l = [
72
72
  };
73
73
  };
74
74
  export {
75
- a as separateWrapperProps
75
+ i as separateWrapperProps
76
76
  };
77
77
  //# sourceMappingURL=propSeparation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"propSeparation.js","sources":["../../src/utils/propSeparation.ts"],"sourcesContent":["// LOCAL COMPONENTS ====================================================================================================\nimport { CommonProps, SpacingTypes } from \"$components/Element/constants\";\n\nexport interface PropSeparationResult<T extends Record<string, any>> {\n fictoanProps : {\n size ? : Exclude<SpacingTypes, \"nano\" | \"huge\">;\n };\n htmlProps : Omit<T, \"size\"> & {\n size ? : number;\n };\n}\n\n/**\n * Separates Fictoan-specific props from HTML props to prevent conflicts.\n *\n * The main conflict is with the 'size' prop:\n * - Fictoan uses size as a string for CSS classes (e.g., \"small\", \"medium\", \"large\")\n * - HTML form elements use size as a number for visual width\n *\n * @param props - The props object to separate\n * @returns Object with fictoanProps and htmlProps\n */\nexport const separateFictoanFromHTMLProps = <T extends Record<string, any>>(\n props : T,\n) : PropSeparationResult<T> => {\n const {size, ...htmlProps} = props;\n\n // Check if size is a valid FormItem size (excluding nano and huge)\n const isValidFormItemSize = typeof size === \"string\" && [\n \"none\", \"micro\", \"tiny\", \"small\", \"medium\", \"large\",\n ].includes(size);\n\n return {\n fictoanProps : {\n size : isValidFormItemSize ? size as Exclude<SpacingTypes, \"nano\" | \"huge\"> : undefined,\n },\n htmlProps : typeof size === \"number\" ? {...htmlProps, size} : htmlProps,\n };\n};\n\n// List of CommonProps keys that should be applied to wrapper elements (like FormItem)\n// rather than to inner input elements\nconst WRAPPER_PROP_KEYS: (keyof CommonProps)[] = [\n // Colours\n \"bgColor\",\n \"bgColour\",\n \"bgOpacity\",\n \"textColor\",\n \"textColour\",\n \"borderColor\",\n \"borderColour\",\n \"borderOpacity\",\n \"fillColor\",\n \"fillColour\",\n \"strokeColor\",\n \"strokeColour\",\n // Visual\n \"shadow\",\n \"shape\",\n \"opacity\",\n // Layout\n \"layoutAsFlexbox\",\n \"stackVertically\",\n \"stackHorizontally\",\n \"layoutAsGrid\",\n \"columns\",\n \"gap\",\n // Margin\n \"margin\",\n \"horizontalMargin\",\n \"verticalMargin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n // Padding\n \"padding\",\n \"horizontalPadding\",\n \"verticalPadding\",\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\",\n // Alignment\n \"horizontallyCentreThis\",\n \"horizontallyCenterThis\",\n \"verticallyCentreItems\",\n \"verticallyCenterItems\",\n \"pushItemsToEnds\",\n // Sizing\n \"isFullWidth\",\n \"isFullHeight\",\n // Responsive visibility\n \"hideOnMobile\",\n \"showOnlyOnMobile\",\n \"hideOnTabletPortrait\",\n \"showOnlyOnTabletPortrait\",\n \"hideOnTabletLandscape\",\n \"showOnlyOnTabletLandscape\",\n \"hideOnDesktop\",\n \"showOnlyOnDesktop\",\n // Typography\n \"weight\",\n // Custom classes\n \"classNames\",\n];\n\nexport interface WrapperInputSeparationResult<T extends Record<string, any>> {\n wrapperProps : Partial<CommonProps>;\n inputProps : Omit<T, keyof CommonProps>;\n}\n\n/**\n * Separates wrapper-level props (margin, padding, layout, etc.) from input-specific props.\n *\n * Form components like TextArea and InputField wrap their input in a FormItem.\n * Layout/spacing props should be applied to FormItem (the wrapper), not the inner input.\n *\n * @param props - The props object to separate\n * @returns Object with wrapperProps (for FormItem) and inputProps (for the input element)\n *\n * @example\n * const { wrapperProps, inputProps } = separateWrapperProps(props);\n * return (\n * <FormItem {...wrapperProps}>\n * <Element as=\"textarea\" {...inputProps} />\n * </FormItem>\n * );\n */\nexport const separateWrapperProps = <T extends Record<string, any>>(\n props: T,\n): WrapperInputSeparationResult<T> => {\n const wrapperProps: Partial<CommonProps> = {};\n const inputProps: Record<string, any> = {};\n\n for (const key of Object.keys(props)) {\n if (WRAPPER_PROP_KEYS.includes(key as keyof CommonProps)) {\n (wrapperProps as any)[key] = props[key];\n } else {\n inputProps[key] = props[key];\n }\n }\n\n return {\n wrapperProps,\n inputProps: inputProps as Omit<T, keyof CommonProps>,\n };\n};"],"names":["WRAPPER_PROP_KEYS","separateWrapperProps","props","wrapperProps","inputProps","key"],"mappings":"AA0CA,MAAMA,IAA2C;AAAA;AAAA,EAE7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AACJ,GAwBaC,IAAuB,CAChCC,MACkC;AAClC,QAAMC,IAAqC,CAAA,GACrCC,IAAkC,CAAA;AAExC,aAAWC,KAAO,OAAO,KAAKH,CAAK;AAC/B,IAAIF,EAAkB,SAASK,CAAwB,IAClDF,EAAqBE,CAAG,IAAIH,EAAMG,CAAG,IAEtCD,EAAWC,CAAG,IAAIH,EAAMG,CAAG;AAInC,SAAO;AAAA,IACH,cAAAF;AAAA,IACA,YAAAC;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"propSeparation.js","sources":["../../src/utils/propSeparation.ts"],"sourcesContent":["// LOCAL COMPONENTS ====================================================================================================\nimport { CommonProps, SpacingTypes } from \"$components/Element/constants\";\n\nexport interface PropSeparationResult<T extends Record<string, any>> {\n fictoanProps : {\n size ? : Exclude<SpacingTypes, \"nano\" | \"huge\">;\n };\n htmlProps : Omit<T, \"size\"> & {\n size ? : number;\n };\n}\n\n/**\n * Separates Fictoan-specific props from HTML props to prevent conflicts.\n *\n * The main conflict is with the 'size' prop:\n * - Fictoan uses size as a string for CSS classes (e.g., \"small\", \"medium\", \"large\")\n * - HTML form elements use size as a number for visual width\n *\n * @param props - The props object to separate\n * @returns Object with fictoanProps and htmlProps\n */\nexport const separateFictoanFromHTMLProps = <T extends Record<string, any>>(\n props : T,\n) : PropSeparationResult<T> => {\n const {size, ...htmlProps} = props;\n\n // Check if size is a valid FormItem size (excluding nano and huge)\n const isValidFormItemSize = typeof size === \"string\" && [\n \"none\", \"micro\", \"tiny\", \"small\", \"medium\", \"large\",\n ].includes(size);\n\n return {\n fictoanProps : {\n size : isValidFormItemSize ? size as Exclude<SpacingTypes, \"nano\" | \"huge\"> : undefined,\n },\n htmlProps : typeof size === \"number\" ? {...htmlProps, size} : htmlProps,\n };\n};\n\n// List of CommonProps keys that should be applied to wrapper elements (like FormItem)\n// rather than to inner input elements\nconst WRAPPER_PROP_KEYS: (keyof CommonProps)[] = [\n // Colours\n \"bgColor\",\n \"bgColour\",\n \"bgOpacity\",\n \"textColor\",\n \"textColour\",\n \"borderColor\",\n \"borderColour\",\n \"borderOpacity\",\n \"fillColor\",\n \"fillColour\",\n \"strokeColor\",\n \"strokeColour\",\n // Visual\n \"shadow\",\n \"shape\",\n \"opacity\",\n // Layout\n \"layoutAsFlexbox\",\n \"listVertically\",\n \"listHorizontally\",\n \"layoutAsGrid\",\n \"columns\",\n \"gap\",\n // Margin\n \"margin\",\n \"horizontalMargin\",\n \"verticalMargin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n // Padding\n \"padding\",\n \"horizontalPadding\",\n \"verticalPadding\",\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\",\n // Alignment\n \"horizontallyCentreThis\",\n \"horizontallyCenterThis\",\n \"verticallyCentreItems\",\n \"verticallyCenterItems\",\n \"pushItemsToEnds\",\n // Sizing\n \"isFullWidth\",\n \"isFullHeight\",\n // Responsive visibility\n \"hideOnMobile\",\n \"showOnlyOnMobile\",\n \"hideOnTabletPortrait\",\n \"showOnlyOnTabletPortrait\",\n \"hideOnTabletLandscape\",\n \"showOnlyOnTabletLandscape\",\n \"hideOnDesktop\",\n \"showOnlyOnDesktop\",\n // Typography\n \"weight\",\n // Custom classes\n \"classNames\",\n];\n\nexport interface WrapperInputSeparationResult<T extends Record<string, any>> {\n wrapperProps : Partial<CommonProps>;\n inputProps : Omit<T, keyof CommonProps>;\n}\n\n/**\n * Separates wrapper-level props (margin, padding, layout, etc.) from input-specific props.\n *\n * Form components like TextArea and InputField wrap their input in a FormItem.\n * Layout/spacing props should be applied to FormItem (the wrapper), not the inner input.\n *\n * @param props - The props object to separate\n * @returns Object with wrapperProps (for FormItem) and inputProps (for the input element)\n *\n * @example\n * const { wrapperProps, inputProps } = separateWrapperProps(props);\n * return (\n * <FormItem {...wrapperProps}>\n * <Element as=\"textarea\" {...inputProps} />\n * </FormItem>\n * );\n */\nexport const separateWrapperProps = <T extends Record<string, any>>(\n props: T,\n): WrapperInputSeparationResult<T> => {\n const wrapperProps: Partial<CommonProps> = {};\n const inputProps: Record<string, any> = {};\n\n for (const key of Object.keys(props)) {\n if (WRAPPER_PROP_KEYS.includes(key as keyof CommonProps)) {\n (wrapperProps as any)[key] = props[key];\n } else {\n inputProps[key] = props[key];\n }\n }\n\n return {\n wrapperProps,\n inputProps: inputProps as Omit<T, keyof CommonProps>,\n };\n};"],"names":["WRAPPER_PROP_KEYS","separateWrapperProps","props","wrapperProps","inputProps","key"],"mappings":"AA0CA,MAAMA,IAA2C;AAAA;AAAA,EAE7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AACJ,GAwBaC,IAAuB,CAChCC,MACkC;AAClC,QAAMC,IAAqC,CAAA,GACrCC,IAAkC,CAAA;AAExC,aAAWC,KAAO,OAAO,KAAKH,CAAK;AAC/B,IAAIF,EAAkB,SAASK,CAAwB,IAClDF,EAAqBE,CAAG,IAAIH,EAAMG,CAAG,IAEtCD,EAAWC,CAAG,IAAIH,EAAMG,CAAG;AAInC,SAAO;AAAA,IACH,cAAAF;AAAA,IACA,YAAAC;AAAA,EAAA;AAER;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name" : "fictoan-react",
3
- "version" : "2.0.0-beta.18",
3
+ "version" : "2.0.0-beta.19",
4
4
  "description" : "A full-featured, designer-friendly, yet performant framework with plain-English props and focus on rapid iteration.",
5
5
  "repository" : {
6
6
  "type" : "git",
@@ -33,7 +33,10 @@
33
33
  "build" : "tsc && vite build && pnpm exec tsx src/scripts/generateSchema.ts",
34
34
  "build:schema" : "pnpm exec tsx src/scripts/generateSchema.ts",
35
35
  "tree-shake" : "agadoo",
36
- "test" : "echo \"Error: no test specified\" && exit 1",
36
+ "test" : "vitest run --project unit",
37
+ "test:watch" : "vitest --project unit",
38
+ "test:browser" : "vitest run --project browser",
39
+ "test:all" : "vitest run",
37
40
  "generate-colours" : "tsx src/scripts/generateColourClasses.ts"
38
41
  },
39
42
  "keywords" : [
@@ -61,15 +64,21 @@
61
64
  "devDependencies" : {
62
65
  "@csstools/postcss-color-mix-function" : "^3.0.12",
63
66
  "@fullhuman/postcss-purgecss" : "^7.0.2",
67
+ "@testing-library/jest-dom" : "^6.4.0",
68
+ "@testing-library/react" : "^16.0.0",
69
+ "@testing-library/user-event" : "^14.5.0",
64
70
  "@types/node" : "^22",
65
71
  "@types/prismjs" : "^1.26.4",
66
72
  "@types/react" : "^19",
67
73
  "@types/react-dom" : "^19",
68
74
  "@vitejs/plugin-react" : "^5.1.2",
75
+ "@vitest/browser" : "^3.2.6",
69
76
  "agadoo" : "^3.0.0",
70
77
  "autoprefixer" : "^10.4.14",
71
78
  "glob" : "^10.3.10",
72
79
  "html-react-parser" : "^5.1.15",
80
+ "jsdom" : "^25.0.0",
81
+ "playwright" : "^1.49.0",
73
82
  "postcss" : "^8.4.30",
74
83
  "postcss-nesting" : "^12.0.1",
75
84
  "prismjs" : "^1.29.0",
@@ -83,7 +92,9 @@
83
92
  "vite" : "6.4.1",
84
93
  "vite-plugin-dts" : "^3.6.4",
85
94
  "vite-plugin-lib-inject-css" : "^1.3.0",
86
- "vite-plugin-svgr" : "^4.2.0"
95
+ "vite-plugin-svgr" : "^4.2.0",
96
+ "vitest" : "^3.2.6",
97
+ "vitest-axe" : "^0.1.0"
87
98
  },
88
99
  "peerDependencies" : {
89
100
  "prismjs" : "^1.29.0",