@uva-glass/component-library 3.23.0 → 3.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/assets/ExpandableInfoPanel.css +1 -0
  2. package/dist/assets/InfoBanner.css +1 -0
  3. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.d.ts +14 -0
  4. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.js +50 -0
  5. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.js.map +1 -0
  6. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.d.ts +5 -0
  7. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js +31 -0
  8. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js.map +1 -0
  9. package/dist/components/ExpandableInfoPanel/index.d.ts +1 -0
  10. package/dist/components/ExpandableInfoPanel/index.js +5 -0
  11. package/dist/components/ExpandableInfoPanel/index.js.map +1 -0
  12. package/dist/components/Icon/icons/index.d.ts +12 -0
  13. package/dist/components/Icon/icons/index.js +179 -169
  14. package/dist/components/Icon/icons/index.js.map +1 -1
  15. package/dist/components/InfoBanner/InfoBanner.d.ts +9 -0
  16. package/dist/components/InfoBanner/InfoBanner.js +12 -0
  17. package/dist/components/InfoBanner/InfoBanner.js.map +1 -0
  18. package/dist/components/InfoBanner/InfoBanner.stories.d.ts +5 -0
  19. package/dist/components/InfoBanner/InfoBanner.stories.js +23 -0
  20. package/dist/components/InfoBanner/InfoBanner.stories.js.map +1 -0
  21. package/dist/components/InfoBanner/index.d.ts +1 -0
  22. package/dist/components/InfoBanner/index.js +5 -0
  23. package/dist/components/InfoBanner/index.js.map +1 -0
  24. package/dist/components/index.d.ts +2 -0
  25. package/dist/components/index.js +100 -96
  26. package/dist/components/index.js.map +1 -1
  27. package/dist/index.js +100 -96
  28. package/dist/index.js.map +1 -1
  29. package/package.json +6 -6
@@ -0,0 +1 @@
1
+ ._expandable-info-panel_wrapper_946pe_1{display:flex;flex-direction:column;width:100%}._expandable-info-panel_header_946pe_7{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding-bottom:.5rem;width:100%}._expandable-info-panel_trigger_946pe_16{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:.25rem;display:flex;font-size:var(--font-size-default);gap:.5rem;height:2.75rem;margin-bottom:0;outline:none;padding:.5rem;position:relative;width:fit-content}._expandable-info-panel_trigger_946pe_16:focus-visible{outline:.125rem dotted var(--new-color-navy-600);outline-offset:.125rem;text-decoration:underline}._expandable-info-panel_trigger_946pe_16:hover{background-color:var(--new-color-grey-200);text-decoration:underline}._expandable-info-panel_trigger--active_946pe_44{background-color:var(--new-color-navy-200);border-radius:.25rem .25rem 0 0}._expandable-info-panel_trigger--active_946pe_44:after{background-color:var(--new-color-navy-200);content:"";display:block;height:.5rem;left:0;position:absolute;right:0;top:100%;z-index:-1}._expandable-info-panel_trigger--active_946pe_44:hover,._expandable-info-panel_trigger--active_946pe_44:hover:after{background-color:var(--new-color-navy-300)}._expandable-info-panel_content-wrapper_946pe_66{align-items:start;background-color:var(--new-color-navy-200);display:grid;gap:1rem;grid-template-columns:1.5rem 1fr;padding:2rem 1.5rem}
@@ -0,0 +1 @@
1
+ ._infobanner_wrapper_1ojyh_1{align-items:center;background-color:var(--new-color-grey-300);border-left:.5rem solid var(--new-color-grey-600);display:flex;gap:1rem;padding:1rem;width:100%}
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ExpandableInfoPanelProps {
3
+ /** Label for the trigger button that toggles the expandable panel. */
4
+ triggerLabel: string;
5
+ /** Main header displayed inline left of the trigger button. */
6
+ mainHeader?: ReactNode | string;
7
+ /** Aria-label for the button when the panel is collapsed. */
8
+ collapseLabel?: string;
9
+ /** Aria-label for the button when the panel is expanded. */
10
+ expandLabel?: string;
11
+ /** Content to be displayed inside the expandable panel. */
12
+ content: ReactNode | string;
13
+ }
14
+ export declare const ExpandableInfoPanel: ({ triggerLabel, mainHeader, collapseLabel, expandLabel, content, }: ExpandableInfoPanelProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,50 @@
1
+ import { jsxs as n, jsx as p } from "react/jsx-runtime";
2
+ import { useState as s, useId as f } from "react";
3
+ import { c as x } from "../../clsx-OuTLNxxd.js";
4
+ import { Icon as r } from "../Icon/Icon.js";
5
+ import '../../assets/ExpandableInfoPanel.css';const a = {
6
+ "expandable-info-panel_wrapper": "_expandable-info-panel_wrapper_946pe_1",
7
+ "expandable-info-panel_header": "_expandable-info-panel_header_946pe_7",
8
+ "expandable-info-panel_trigger": "_expandable-info-panel_trigger_946pe_16",
9
+ "expandable-info-panel_trigger--active": "_expandable-info-panel_trigger--active_946pe_44",
10
+ "expandable-info-panel_content-wrapper": "_expandable-info-panel_content-wrapper_946pe_66"
11
+ }, h = ({
12
+ triggerLabel: l,
13
+ mainHeader: o,
14
+ collapseLabel: t = "",
15
+ expandLabel: d = "",
16
+ content: _
17
+ }) => {
18
+ const [e, c] = s(!1), i = f();
19
+ return /* @__PURE__ */ n("div", { className: a["expandable-info-panel_wrapper"], children: [
20
+ /* @__PURE__ */ n("div", { className: a["expandable-info-panel_header"], children: [
21
+ o,
22
+ /* @__PURE__ */ n(
23
+ "button",
24
+ {
25
+ className: x(a["expandable-info-panel_trigger"], {
26
+ [a["expandable-info-panel_trigger--active"]]: e
27
+ }),
28
+ type: "button",
29
+ "aria-expanded": e,
30
+ "aria-controls": i,
31
+ "aria-label": `${l} - ${e ? t : d}`,
32
+ onClick: () => c(!e),
33
+ children: [
34
+ /* @__PURE__ */ p(r, { name: e ? "SquareInfoSolid" : "SquareInfo", size: 24 }),
35
+ l,
36
+ /* @__PURE__ */ p(r, { name: e ? "CheveronUp" : "CheveronDown", size: 16 })
37
+ ]
38
+ }
39
+ )
40
+ ] }),
41
+ e && /* @__PURE__ */ n("div", { id: i, className: a["expandable-info-panel_content-wrapper"], children: [
42
+ /* @__PURE__ */ p(r, { name: "SquareInfo", size: 24 }),
43
+ /* @__PURE__ */ p("div", { children: _ })
44
+ ] })
45
+ ] });
46
+ };
47
+ export {
48
+ h as ExpandableInfoPanel
49
+ };
50
+ //# sourceMappingURL=ExpandableInfoPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandableInfoPanel.js","sources":["../../../src/components/ExpandableInfoPanel/ExpandableInfoPanel.tsx"],"sourcesContent":["import { useState, type ReactNode } from 'react';\r\nimport clsx from 'clsx';\r\nimport { useId } from 'react';\r\n\r\nimport styles from './ExpandableInfoPanel.module.css';\r\n\r\nimport { Icon } from 'components/Icon';\r\n\r\nexport interface ExpandableInfoPanelProps {\r\n /** Label for the trigger button that toggles the expandable panel. */\r\n triggerLabel: string;\r\n /** Main header displayed inline left of the trigger button. */\r\n mainHeader?: ReactNode | string;\r\n /** Aria-label for the button when the panel is collapsed. */\r\n collapseLabel?: string;\r\n /** Aria-label for the button when the panel is expanded. */\r\n expandLabel?: string;\r\n /** Content to be displayed inside the expandable panel. */\r\n content: ReactNode | string;\r\n}\r\n\r\nexport const ExpandableInfoPanel = ({\r\n triggerLabel,\r\n mainHeader,\r\n collapseLabel = '',\r\n expandLabel = '',\r\n content,\r\n}: ExpandableInfoPanelProps) => {\r\n const [active, setActive] = useState(false);\r\n const contentId = useId();\r\n\r\n return (\r\n <div className={styles['expandable-info-panel_wrapper']}>\r\n <div className={styles['expandable-info-panel_header']}>\r\n {mainHeader}\r\n <button\r\n className={clsx(styles['expandable-info-panel_trigger'], {\r\n [styles['expandable-info-panel_trigger--active']]: active,\r\n })}\r\n type=\"button\"\r\n aria-expanded={active}\r\n aria-controls={contentId}\r\n aria-label={`${triggerLabel} - ${active ? collapseLabel : expandLabel}`}\r\n onClick={() => setActive(!active)}\r\n >\r\n <Icon name={active ? 'SquareInfoSolid' : 'SquareInfo'} size={24} />\r\n {triggerLabel}\r\n <Icon name={active ? 'CheveronUp' : 'CheveronDown'} size={16} />\r\n </button>\r\n </div>\r\n {active && (\r\n <div id={contentId} className={styles['expandable-info-panel_content-wrapper']}>\r\n <Icon name=\"SquareInfo\" size={24} />\r\n <div>{content}</div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n"],"names":["ExpandableInfoPanel","triggerLabel","mainHeader","collapseLabel","expandLabel","content","active","setActive","useState","contentId","useId","jsxs","styles","clsx","jsx","Icon"],"mappings":";;;;;;;;;;GAqBaA,IAAsB,CAAC;AAAA,EAClC,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,aAAAC,IAAc;AAAA,EACd,SAAAC;AACF,MAAgC;AAC9B,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpCC,IAAYC,EAAM;AAExB,SACG,gBAAAC,EAAA,OAAA,EAAI,WAAWC,EAAO,+BAA+B,GACpD,UAAA;AAAA,IAAA,gBAAAD,EAAC,OAAI,EAAA,WAAWC,EAAO,8BAA8B,GAClD,UAAA;AAAA,MAAAV;AAAA,MACD,gBAAAS;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWE,EAAKD,EAAO,+BAA+B,GAAG;AAAA,YACvD,CAACA,EAAO,uCAAuC,CAAC,GAAGN;AAAA,UAAA,CACpD;AAAA,UACD,MAAK;AAAA,UACL,iBAAeA;AAAA,UACf,iBAAeG;AAAA,UACf,cAAY,GAAGR,CAAY,MAAMK,IAASH,IAAgBC,CAAW;AAAA,UACrE,SAAS,MAAMG,EAAU,CAACD,CAAM;AAAA,UAEhC,UAAA;AAAA,YAAA,gBAAAQ,EAACC,KAAK,MAAMT,IAAS,oBAAoB,cAAc,MAAM,IAAI;AAAA,YAChEL;AAAA,8BACAc,GAAK,EAAA,MAAMT,IAAS,eAAe,gBAAgB,MAAM,GAAI,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAChE,GACF;AAAA,IACCA,uBACE,OAAI,EAAA,IAAIG,GAAW,WAAWG,EAAO,uCAAuC,GAC3E,UAAA;AAAA,MAAA,gBAAAE,EAACC,GAAK,EAAA,MAAK,cAAa,MAAM,IAAI;AAAA,MAClC,gBAAAD,EAAC,SAAK,UAAQT,EAAA,CAAA;AAAA,IAAA,EAChB,CAAA;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -0,0 +1,5 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { ExpandableInfoPanelProps } from './ExpandableInfoPanel';
3
+ declare const _default: Meta<ExpandableInfoPanelProps>;
4
+ export default _default;
5
+ export declare const ExpandableInfoPanelExample: import('@storybook/core/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, ExpandableInfoPanelProps>;
@@ -0,0 +1,31 @@
1
+ import { jsxs as a, jsx as e, Fragment as t } from "react/jsx-runtime";
2
+ import { ExpandableInfoPanel as n } from "./ExpandableInfoPanel.js";
3
+ const r = "<ExpandableInfoPanel triggerLabel={string} mainHeader={string or reactnode} collapseLabel={string} expandLabel={string} content={string or reactnode} />", p = {
4
+ title: "Molecules/ExpandableInfoPanel",
5
+ component: n,
6
+ parameters: {
7
+ inspectComponent: n,
8
+ codeString: r
9
+ }
10
+ }, o = (i) => /* @__PURE__ */ a(t, { children: [
11
+ /* @__PURE__ */ e(n, { ...i }),
12
+ /* @__PURE__ */ e("div", { style: { marginTop: "1rem" }, children: "De universiteit biedt een breed scala aan vakken aan, variërend van exacte wetenschappen tot geesteswetenschappen. Studenten kunnen kiezen uit uitdagende keuzevakken, minors en specialisaties die hun studie verrijken. Deze vaklaanbiedingen stimuleren interdisciplinair leren, persoonlijke ontwikkeling en academische verdieping, afgestemd op actuele maatschappelijke vraagstukken en de behoeften van de arbeidsmarkt." })
13
+ ] }), s = o.bind({});
14
+ s.args = {
15
+ triggerLabel: "Wat moet ik doen?",
16
+ mainHeader: /* @__PURE__ */ e("h1", { children: "Basisgegevens" }),
17
+ collapseLabel: "Sluit informatiepaneel",
18
+ expandLabel: "Open informatiepaneel",
19
+ content: /* @__PURE__ */ a(t, { children: [
20
+ /* @__PURE__ */ e("h3", { style: { marginTop: "0" }, children: "Wat moet ik doen?" }),
21
+ /* @__PURE__ */ e("span", { children: "Controleer de onderstaande basisgegevens. Klik daarna op ‘Start’ om te beginnen met het invoeren van de roosterwensen. Je kunt tussentijds opslaan en op een later moment verdergaan." }),
22
+ /* @__PURE__ */ e("br", {}),
23
+ /* @__PURE__ */ e("br", {}),
24
+ /* @__PURE__ */ e("span", { children: "Kloppen de gegevens niet? Neem contact op met de opleidingscoördinator." })
25
+ ] })
26
+ };
27
+ export {
28
+ s as ExpandableInfoPanelExample,
29
+ p as default
30
+ };
31
+ //# sourceMappingURL=ExpandableInfoPanel.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandableInfoPanel.stories.js","sources":["../../../src/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.tsx"],"sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\r\nimport type { ExpandableInfoPanelProps } from './ExpandableInfoPanel';\r\n\r\nimport { ExpandableInfoPanel } from './ExpandableInfoPanel';\r\n\r\nconst codeString =\r\n '<ExpandableInfoPanel triggerLabel={string} mainHeader={string or reactnode} collapseLabel={string} expandLabel={string} content={string or reactnode} />';\r\n\r\n// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n title: 'Molecules/ExpandableInfoPanel',\r\n component: ExpandableInfoPanel,\r\n parameters: {\r\n inspectComponent: ExpandableInfoPanel,\r\n codeString: codeString,\r\n },\r\n} as Meta<ExpandableInfoPanelProps>;\r\n\r\nconst Template: StoryFn<ExpandableInfoPanelProps> = (args) => (\r\n <>\r\n <ExpandableInfoPanel {...args} />\r\n <div style={{ marginTop: '1rem' }}>\r\n De universiteit biedt een breed scala aan vakken aan, variërend van exacte wetenschappen tot geesteswetenschappen.\r\n Studenten kunnen kiezen uit uitdagende keuzevakken, minors en specialisaties die hun studie verrijken. Deze\r\n vaklaanbiedingen stimuleren interdisciplinair leren, persoonlijke ontwikkeling en academische verdieping,\r\n afgestemd op actuele maatschappelijke vraagstukken en de behoeften van de arbeidsmarkt.\r\n </div>\r\n </>\r\n);\r\n\r\nexport const ExpandableInfoPanelExample = Template.bind({});\r\nExpandableInfoPanelExample.args = {\r\n triggerLabel: 'Wat moet ik doen?',\r\n mainHeader: <h1>Basisgegevens</h1>,\r\n collapseLabel: 'Sluit informatiepaneel',\r\n expandLabel: 'Open informatiepaneel',\r\n content: (\r\n <>\r\n <h3 style={{ marginTop: '0' }}>Wat moet ik doen?</h3>\r\n <span>\r\n Controleer de onderstaande basisgegevens. Klik daarna op ‘Start’ om te beginnen met het invoeren van de\r\n roosterwensen. Je kunt tussentijds opslaan en op een later moment verdergaan.\r\n </span>\r\n <br />\r\n <br />\r\n <span>Kloppen de gegevens niet? Neem contact op met de opleidingscoördinator.</span>\r\n </>\r\n ),\r\n};\r\n"],"names":["codeString","ExpandableInfoPanel_stories","ExpandableInfoPanel","Template","args","jsxs","Fragment","jsx","ExpandableInfoPanelExample"],"mappings":";;AAKA,MAAMA,IACJ,4JAGaC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EAAA;AAEJ,GAEMG,IAA8C,CAACC,MAEjD,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,EAAC,gBAAAC,EAAAL,GAAA,EAAqB,GAAGE,GAAM;AAAA,oBAC9B,OAAI,EAAA,OAAO,EAAE,WAAW,UAAU,UAKnC,maAAA,CAAA;AAAA,GACF,GAGWI,IAA6BL,EAAS,KAAK,CAAE,CAAA;AAC1DK,EAA2B,OAAO;AAAA,EAChC,cAAc;AAAA,EACd,YAAa,gBAAAD,EAAA,MAAA,EAAG,UAAa,gBAAA,CAAA;AAAA,EAC7B,eAAe;AAAA,EACf,aAAa;AAAA,EACb,SAEI,gBAAAF,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAC,EAAC,QAAG,OAAO,EAAE,WAAW,OAAO,UAAiB,qBAAA;AAAA,IAChD,gBAAAA,EAAC,UAAK,UAGN,wLAAA,CAAA;AAAA,sBACC,MAAG,EAAA;AAAA,sBACH,MAAG,EAAA;AAAA,IACJ,gBAAAA,EAAC,UAAK,UAAuE,0EAAA,CAAA;AAAA,EAAA,EAC/E,CAAA;AAEJ;"}
@@ -0,0 +1 @@
1
+ export * from './ExpandableInfoPanel';
@@ -0,0 +1,5 @@
1
+ import { ExpandableInfoPanel as n } from "./ExpandableInfoPanel.js";
2
+ export {
3
+ n as ExpandableInfoPanel
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -107,6 +107,18 @@ export declare const Icons: {
107
107
  desc?: string;
108
108
  descId?: string;
109
109
  }>;
110
+ CalendarEdit: import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement> & {
111
+ title?: string;
112
+ titleId?: string;
113
+ desc?: string;
114
+ descId?: string;
115
+ }>;
116
+ CalendarEditFill: import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement> & {
117
+ title?: string;
118
+ titleId?: string;
119
+ desc?: string;
120
+ descId?: string;
121
+ }>;
110
122
  ChainLink: import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement> & {
111
123
  title?: string;
112
124
  titleId?: string;