@fremtind/jokul 0.35.0 → 0.36.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.
- package/build/TestHelper-BMt-MGSi.cjs +2 -0
- package/build/TestHelper-BMt-MGSi.cjs.map +1 -0
- package/build/TestHelper-Dudd9Y1P.js +2 -0
- package/build/TestHelper-Dudd9Y1P.js.map +1 -0
- package/build/build-stats.html +1 -1
- package/build/cjs/components/accordion/Accordion.cjs.map +1 -1
- package/build/cjs/components/accordion/Accordion.d.cts +4 -0
- package/build/cjs/components/accordion/AccordionItem.cjs.map +1 -1
- package/build/cjs/components/accordion/AccordionItem.d.cts +4 -0
- package/build/cjs/components/accordion/integration/accordion.spec.cjs +1 -1
- package/build/cjs/components/accordion/integration/accordion.spec.cjs.map +1 -1
- package/build/cjs/components/breadcrumb/integration/breadcrumb.spec.cjs +1 -1
- package/build/cjs/components/button/integration/button.spec.cjs +1 -1
- package/build/cjs/components/card/integration/card.spec.cjs +1 -1
- package/build/cjs/components/checkbox/integration/checkbox.spec.cjs +1 -1
- package/build/cjs/components/combobox/integration/combobox.spec.cjs +1 -1
- package/build/cjs/components/cookie-consent/integration/cookie-consent.spec.cjs +1 -1
- package/build/cjs/components/datepicker/integration/datepicker.spec.cjs +1 -1
- package/build/cjs/components/description-list/integration/description-list.spec.cjs +1 -1
- package/build/cjs/components/expander/ExpandablePanel.cjs +2 -0
- package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -0
- package/build/cjs/components/expander/ExpandablePanel.d.cts +2 -0
- package/build/cjs/components/expander/ExpandablePanelContent.cjs +2 -0
- package/build/cjs/components/expander/ExpandablePanelContent.cjs.map +1 -0
- package/build/cjs/components/expander/ExpandablePanelContent.d.cts +2 -0
- package/build/cjs/components/expander/Expander.cjs +1 -1
- package/build/cjs/components/expander/Expander.cjs.map +1 -1
- package/build/cjs/components/expander/Expander.d.cts +2 -27
- package/build/cjs/components/expander/context.cjs +2 -0
- package/build/cjs/components/expander/context.cjs.map +1 -0
- package/build/cjs/components/expander/context.d.cts +2 -0
- package/build/cjs/components/expander/deprecated/ExpandSection.cjs +2 -0
- package/build/cjs/components/expander/deprecated/ExpandSection.cjs.map +1 -0
- package/build/cjs/components/expander/{ExpandSection.d.cts → deprecated/ExpandSection.d.cts} +6 -2
- package/build/cjs/components/expander/deprecated/Expander.cjs +2 -0
- package/build/cjs/components/expander/deprecated/Expander.cjs.map +1 -0
- package/build/cjs/components/expander/deprecated/Expander.d.cts +27 -0
- package/build/cjs/components/expander/index.cjs +1 -1
- package/build/cjs/components/expander/index.d.cts +4 -2
- package/build/cjs/components/expander/types.cjs +2 -0
- package/build/cjs/components/expander/types.cjs.map +1 -0
- package/build/cjs/components/expander/types.d.cts +23 -0
- package/build/cjs/components/feedback/integration/feedback.spec.cjs +1 -1
- package/build/cjs/components/file-input/integration/file-input.spec.cjs +1 -1
- package/build/cjs/components/icon/integration/icon.spec.cjs +1 -1
- package/build/cjs/components/icon-button/integration/icon-button.spec.cjs +1 -1
- package/build/cjs/components/image/integration/image.spec.cjs +1 -1
- package/build/cjs/components/image/integration/image.spec.cjs.map +1 -1
- package/build/cjs/components/index.cjs +1 -1
- package/build/cjs/components/input-group/integration/input-group.spec.cjs +1 -1
- package/build/cjs/components/input-panel/integration/input-panel.spec.cjs +1 -1
- package/build/cjs/components/link/integration/link.spec.cjs +1 -1
- package/build/cjs/components/link-list/integration/link-list.spec.cjs +1 -1
- package/build/cjs/components/list/integration/list.spec.cjs +1 -1
- package/build/cjs/components/menu/integration/menu.spec.cjs +1 -1
- package/build/cjs/components/message/integration/message.spec.cjs +1 -1
- package/build/cjs/components/modal/integration/modal.spec.cjs +1 -1
- package/build/cjs/components/pagination/integration/pagination.spec.cjs +1 -1
- package/build/cjs/components/popover/integration/popover.spec.cjs +1 -1
- package/build/cjs/components/popover/integration/popover.spec.cjs.map +1 -1
- package/build/cjs/components/progress-bar/integration/progress-bar.spec.cjs +1 -1
- package/build/cjs/components/radio-button/integration/radio-button.spec.cjs +1 -1
- package/build/cjs/components/select/integration/select.spec.cjs +1 -1
- package/build/cjs/components/summary-table/integration/summary-table.spec.cjs +1 -1
- package/build/cjs/components/system-message/integration/system-message.spec.cjs +1 -1
- package/build/cjs/components/table/ExpandableTableRowController.cjs +1 -1
- package/build/cjs/components/table/ExpandableTableRowController.cjs.map +1 -1
- package/build/cjs/components/table/integration/table.spec.cjs +1 -1
- package/build/cjs/components/tabs/integration/tabs.spec.cjs +1 -1
- package/build/cjs/components/tag/integration/tag.spec.cjs +1 -1
- package/build/cjs/components/text-input/integration/text-input.spec.cjs +1 -1
- package/build/cjs/components/toast/integration/toast.spec.cjs +1 -1
- package/build/cjs/components/toggle-switch/integration/toggle-switch.spec.cjs +1 -1
- package/build/cjs/components/tooltip/integration/tooltip.spec.cjs +1 -1
- package/build/cjs/components/tooltip/integration/tooltip.spec.cjs.map +1 -1
- package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.cjs.map +1 -1
- package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.d.cts +1 -0
- package/build/cjs/index.cjs +1 -1
- package/build/es/components/accordion/Accordion.d.ts +4 -0
- package/build/es/components/accordion/Accordion.js.map +1 -1
- package/build/es/components/accordion/AccordionItem.d.ts +4 -0
- package/build/es/components/accordion/AccordionItem.js.map +1 -1
- package/build/es/components/accordion/integration/accordion.spec.js +1 -1
- package/build/es/components/accordion/integration/accordion.spec.js.map +1 -1
- package/build/es/components/breadcrumb/integration/breadcrumb.spec.js +1 -1
- package/build/es/components/button/integration/button.spec.js +1 -1
- package/build/es/components/card/integration/card.spec.js +1 -1
- package/build/es/components/checkbox/integration/checkbox.spec.js +1 -1
- package/build/es/components/combobox/integration/combobox.spec.js +1 -1
- package/build/es/components/cookie-consent/integration/cookie-consent.spec.js +1 -1
- package/build/es/components/datepicker/integration/datepicker.spec.js +1 -1
- package/build/es/components/description-list/integration/description-list.spec.js +1 -1
- package/build/es/components/expander/ExpandablePanel.d.ts +2 -0
- package/build/es/components/expander/ExpandablePanel.js +2 -0
- package/build/es/components/expander/ExpandablePanel.js.map +1 -0
- package/build/es/components/expander/ExpandablePanelContent.d.ts +2 -0
- package/build/es/components/expander/ExpandablePanelContent.js +2 -0
- package/build/es/components/expander/ExpandablePanelContent.js.map +1 -0
- package/build/es/components/expander/Expander.d.ts +2 -27
- package/build/es/components/expander/Expander.js +1 -1
- package/build/es/components/expander/Expander.js.map +1 -1
- package/build/es/components/expander/context.d.ts +2 -0
- package/build/es/components/expander/context.js +2 -0
- package/build/es/components/expander/context.js.map +1 -0
- package/build/es/components/expander/{ExpandSection.d.ts → deprecated/ExpandSection.d.ts} +6 -2
- package/build/es/components/expander/deprecated/ExpandSection.js +2 -0
- package/build/es/components/expander/deprecated/ExpandSection.js.map +1 -0
- package/build/es/components/expander/deprecated/Expander.d.ts +27 -0
- package/build/es/components/expander/deprecated/Expander.js +2 -0
- package/build/es/components/expander/deprecated/Expander.js.map +1 -0
- package/build/es/components/expander/index.d.ts +4 -2
- package/build/es/components/expander/index.js +1 -1
- package/build/es/components/expander/types.d.ts +23 -0
- package/build/es/components/expander/types.js +2 -0
- package/build/es/components/expander/types.js.map +1 -0
- package/build/es/components/feedback/integration/feedback.spec.js +1 -1
- package/build/es/components/file-input/integration/file-input.spec.js +1 -1
- package/build/es/components/icon/integration/icon.spec.js +1 -1
- package/build/es/components/icon-button/integration/icon-button.spec.js +1 -1
- package/build/es/components/image/integration/image.spec.js +1 -1
- package/build/es/components/image/integration/image.spec.js.map +1 -1
- package/build/es/components/index.js +1 -1
- package/build/es/components/input-group/integration/input-group.spec.js +1 -1
- package/build/es/components/input-panel/integration/input-panel.spec.js +1 -1
- package/build/es/components/link/integration/link.spec.js +1 -1
- package/build/es/components/link-list/integration/link-list.spec.js +1 -1
- package/build/es/components/list/integration/list.spec.js +1 -1
- package/build/es/components/menu/integration/menu.spec.js +1 -1
- package/build/es/components/message/integration/message.spec.js +1 -1
- package/build/es/components/modal/integration/modal.spec.js +1 -1
- package/build/es/components/pagination/integration/pagination.spec.js +1 -1
- package/build/es/components/popover/integration/popover.spec.js +1 -1
- package/build/es/components/popover/integration/popover.spec.js.map +1 -1
- package/build/es/components/progress-bar/integration/progress-bar.spec.js +1 -1
- package/build/es/components/radio-button/integration/radio-button.spec.js +1 -1
- package/build/es/components/select/integration/select.spec.js +1 -1
- package/build/es/components/summary-table/integration/summary-table.spec.js +1 -1
- package/build/es/components/system-message/integration/system-message.spec.js +1 -1
- package/build/es/components/table/ExpandableTableRowController.js +1 -1
- package/build/es/components/table/ExpandableTableRowController.js.map +1 -1
- package/build/es/components/table/integration/table.spec.js +1 -1
- package/build/es/components/tabs/integration/tabs.spec.js +1 -1
- package/build/es/components/tag/integration/tag.spec.js +1 -1
- package/build/es/components/text-input/integration/text-input.spec.js +1 -1
- package/build/es/components/toast/integration/toast.spec.js +1 -1
- package/build/es/components/toggle-switch/integration/toggle-switch.spec.js +1 -1
- package/build/es/components/tooltip/integration/tooltip.spec.js +1 -1
- package/build/es/components/tooltip/integration/tooltip.spec.js.map +1 -1
- package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.d.ts +1 -0
- package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.js.map +1 -1
- package/build/es/index.js +1 -1
- package/package.json +2 -2
- package/styles/components/accordion/accordion.scss +2 -0
- package/styles/components/button/button.css +2 -2
- package/styles/components/button/button.min.css +1 -1
- package/styles/components/checkbox/checkbox.css +4 -4
- package/styles/components/checkbox/checkbox.min.css +1 -1
- package/styles/components/expander/_index.scss +2 -1
- package/styles/components/expander/expandable.css +88 -0
- package/styles/components/expander/expandable.min.css +1 -0
- package/styles/components/expander/expandable.scss +105 -0
- package/styles/components/expander/expander.css +13 -13
- package/styles/components/expander/expander.min.css +1 -1
- package/styles/components/expander/expander.scss +7 -5
- package/styles/components/feedback/feedback.css +2 -2
- package/styles/components/feedback/feedback.min.css +1 -1
- package/styles/components/icon/icon.css +1 -1
- package/styles/components/icon/icon.min.css +1 -1
- package/styles/components/icon/icon.scss +1 -1
- package/styles/components/input-group/input-group.css +2 -2
- package/styles/components/input-group/input-group.min.css +1 -1
- package/styles/components/input-panel/checkbox-panel.css +2 -2
- package/styles/components/input-panel/checkbox-panel.min.css +1 -1
- package/styles/components/input-panel/radio-panel.css +2 -2
- package/styles/components/input-panel/radio-panel.min.css +1 -1
- package/styles/components/loader/loader.css +6 -6
- package/styles/components/loader/loader.min.css +1 -1
- package/styles/components/loader/skeleton-loader.css +5 -5
- package/styles/components/loader/skeleton-loader.min.css +1 -1
- package/styles/components/message/message.css +2 -2
- package/styles/components/message/message.min.css +1 -1
- package/styles/components/progress-bar/progress-bar.css +2 -2
- package/styles/components/progress-bar/progress-bar.min.css +1 -1
- package/styles/components/radio-button/radio-button.css +2 -2
- package/styles/components/radio-button/radio-button.min.css +1 -1
- package/styles/components/system-message/system-message.css +2 -2
- package/styles/components/system-message/system-message.min.css +1 -1
- package/styles/components/table/_table-cell.scss +2 -0
- package/styles/components/table/table.css +2 -0
- package/styles/components/table/table.min.css +1 -1
- package/styles/components/toast/toast.css +4 -4
- package/styles/components/toast/toast.min.css +1 -1
- package/styles/styles.css +137 -50
- package/styles/styles.min.css +1 -1
- package/build/TestHelper-BVq1XrAt.cjs +0 -2
- package/build/TestHelper-BVq1XrAt.cjs.map +0 -1
- package/build/TestHelper-CT9BmbYb.js +0 -2
- package/build/TestHelper-CT9BmbYb.js.map +0 -1
- package/build/cjs/components/expander/ExpandSection.cjs +0 -2
- package/build/cjs/components/expander/ExpandSection.cjs.map +0 -1
- package/build/es/components/expander/ExpandSection.js +0 -2
- package/build/es/components/expander/ExpandSection.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var e=Object.defineProperty,t=(t,a,i)=>((t,a,i)=>a in t?e(t,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[a]=i)(t,"symbol"!=typeof a?a+"":a,i);const a=require("@playwright/test"),i=require("@vitejs/plugin-react-swc"),s=require("node:path"),o=require("node:url"),n=require("vite"),r=require("node:fs");var c=typeof document<"u"?document.currentScript:null;function l(e){return{name:"setup-dev",buildStart(){r.cpSync(s.resolve(o.fileURLToPath(new URL("data:text/javascript;base64,ZXhwb3J0ICogZnJvbSAiLi9jb3B5LWprbC1mb250cy5tanMiOwpleHBvcnQgKiBmcm9tICIuL3NldHVwLWRldi5tanMiOwo=",typeof document>"u"?require("url").pathToFileURL(__filename).href:c&&c.src||new URL("TestHelper-BVq1XrAt.cjs",document.baseURI).href)),"index.html"),s.resolve(e,"index.html")),r.cpSync(s.resolve(o.fileURLToPath(new URL("data:text/javascript;base64,ZXhwb3J0ICogZnJvbSAiLi9jb3B5LWprbC1mb250cy5tanMiOwpleHBvcnQgKiBmcm9tICIuL3NldHVwLWRldi5tanMiOwo=",typeof document>"u"?require("url").pathToFileURL(__filename).href:c&&c.src||new URL("TestHelper-BVq1XrAt.cjs",document.baseURI).href)),"main.tsx"),s.resolve(e,"main.tsx")),console.log(`Copied index.html and main.tsx into "${e}"`)},buildEnd(){r.rmSync(s.resolve(e,"index.html")),r.rmSync(s.resolve(e,"main.tsx")),console.log(`Deleted index.html and main.tsx from "${e}"`)}}}exports.TestHelper=class{constructor(e){t(this,"server"),t(this,"page"),t(this,"package"),t(this,"projectName"),this.page=e.page,this.package=e.package,this.projectName=e.projectName}async init(){return this.server=await n.createServer({mode:"production",configFile:!1,plugins:[i(),(e=s.resolve(o.fileURLToPath(new URL("data:application/octet-stream;base64,ZXhwb3J0IHsgVGVzdEhlbHBlciB9IGZyb20gIi4vVGVzdEhlbHBlci5tdHMiOwo=",typeof document>"u"?require("url").pathToFileURL(__filename).href:c&&c.src||new URL("TestHelper-BVq1XrAt.cjs",document.baseURI).href)),"..","..","packages","jokul","src","components",this.package,"documentation","public","fonts"),{name:"copy-jkl-fonts",configResolved(){const t=s.resolve(o.fileURLToPath(new URL("data:text/javascript;base64,ZXhwb3J0ICogZnJvbSAiLi9jb3B5LWprbC1mb250cy5tanMiOwpleHBvcnQgKiBmcm9tICIuL3NldHVwLWRldi5tanMiOwo=",typeof document>"u"?require("url").pathToFileURL(__filename).href:c&&c.src||new URL("TestHelper-BVq1XrAt.cjs",document.baseURI).href)),"..","..","packages","webfonts","fonts");r.existsSync(e)||(r.cpSync(t,e,{recursive:!0}),console.log(`Copied font files into "${e}"`))}}),l(s.resolve(o.fileURLToPath(new URL("data:application/octet-stream;base64,ZXhwb3J0IHsgVGVzdEhlbHBlciB9IGZyb20gIi4vVGVzdEhlbHBlci5tdHMiOwo=",typeof document>"u"?require("url").pathToFileURL(__filename).href:c&&c.src||new URL("TestHelper-BVq1XrAt.cjs",document.baseURI).href)),"..","..","packages","jokul","src","components",this.package,"documentation"))],resolve:{alias:{"doc-utils":s.resolve(o.fileURLToPath(new URL("data:application/octet-stream;base64,ZXhwb3J0IHsgVGVzdEhlbHBlciB9IGZyb20gIi4vVGVzdEhlbHBlci5tdHMiOwo=",typeof document>"u"?require("url").pathToFileURL(__filename).href:c&&c.src||new URL("TestHelper-BVq1XrAt.cjs",document.baseURI).href)),"..","dev-example")}},root:s.resolve(o.fileURLToPath(new URL("data:application/octet-stream;base64,ZXhwb3J0IHsgVGVzdEhlbHBlciB9IGZyb20gIi4vVGVzdEhlbHBlci5tdHMiOwo=",typeof document>"u"?require("url").pathToFileURL(__filename).href:c&&c.src||new URL("TestHelper-BVq1XrAt.cjs",document.baseURI).href)),"..","..","packages","jokul","src","components",this.package,"documentation"),define:{__CI__:"true"}}),await this.server.listen(),this.server.config.server.port;var e}async close(){var e;await(null==(e=this.server)?void 0:e.close())}async open(e="/"){var t;await this.page.goto(`http://localhost:${null==(t=this.server)?void 0:t.config.server.port}${e}`)}async clickElement(e){await this.page.click(e)}async pressKey(e){await this.page.keyboard.press(e)}async checkProp(e){return await this.page.getByTestId(e).first().check({force:!0}),this}async setDensity(e){return await this.page.getByTestId(`density-${e}`).first().check({force:!0}),this}async setTheme(e){return await this.page.getByTestId(`theme-${e}`).first().check({force:!0}),this}async snapshot(e,t){await this.page.evaluate((()=>document.fonts.ready)),await this.page.evaluate((()=>new Promise((e=>setTimeout(e,600)))));const i=await this.page.locator(t||"[data-testid='component-example']").first().boundingBox();if(!i)return;const s=`${`packages/jokul/src/components/${this.package}/integration/__screenshots__`}/${a.test.info().title.replaceAll(" ","-")}-${this.projectName}-${e}.png`;r.existsSync(s)?await a.expect(await this.page.screenshot({animations:"disabled",caret:"hide",clip:{...i}})).toMatchSnapshot(`${this.projectName}-${e}`):await this.page.screenshot({animations:"disabled",caret:"hide",clip:{...i},path:s})}async snapshots({before:e,after:t,selector:a}={}){await this.setDensity("default"),await this.setTheme("light"),await(null==e?void 0:e()),await this.snapshot("default",a),await(null==t?void 0:t()),await this.setDensity("default"),await this.setTheme("dark"),await(null==e?void 0:e()),await this.snapshot("default-dark",a),await(null==t?void 0:t()),await this.setDensity("compact"),await this.setTheme("light"),await(null==e?void 0:e()),await this.snapshot("compact-light",a),await(null==t?void 0:t()),await this.setDensity("compact"),await this.setTheme("dark"),await(null==e?void 0:e()),await this.snapshot("compact-dark",a),await(null==t?void 0:t())}};
|
|
2
|
-
//# sourceMappingURL=TestHelper-BVq1XrAt.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestHelper-BVq1XrAt.cjs","sources":["../../../utils/vite/setup-dev.mjs","../../../utils/playwright/TestHelper.mts","../../../utils/vite/copy-jkl-fonts.mjs"],"sourcesContent":["import { cpSync, rmSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nfunction setupDev(destination) {\n return {\n name: \"setup-dev\",\n buildStart() {\n cpSync(\n resolve(fileURLToPath(new URL(\".\", import.meta.url)), \"index.html\"),\n resolve(destination, \"index.html\"),\n );\n cpSync(resolve(fileURLToPath(new URL(\".\", import.meta.url)), \"main.tsx\"), resolve(destination, \"main.tsx\"));\n console.log(`Copied index.html and main.tsx into \"${destination}\"`);\n },\n buildEnd() {\n rmSync(resolve(destination, \"index.html\"));\n rmSync(resolve(destination, \"main.tsx\"));\n console.log(`Deleted index.html and main.tsx from \"${destination}\"`);\n },\n };\n}\n\nexport { setupDev };\n","import { expect, Page, test } from \"@playwright/test\";\nimport react from \"@vitejs/plugin-react-swc\";\nimport { resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { createServer, ViteDevServer } from \"vite\";\n/* @ts-ignore */\nimport { copyJklFonts } from \"../vite/copy-jkl-fonts.mjs\";\nimport { existsSync } from \"node:fs\";\n/* @ts-ignore */\nimport { setupDev } from \"../vite/setup-dev.mjs\";\n\nexport class TestHelper {\n private server?: ViteDevServer;\n private page: Page;\n private package: string;\n private projectName: string;\n\n constructor(args: { page: Page; package: string; projectName: string }) {\n this.page = args.page;\n this.package = args.package;\n this.projectName = args.projectName;\n }\n\n async init() {\n this.server = await createServer({\n mode: \"production\",\n configFile: false,\n plugins: [\n react(),\n copyJklFonts(\n resolve(\n fileURLToPath(new URL(\".\", import.meta.url)),\n \"..\",\n \"..\",\n \"packages\",\n \"jokul\",\n \"src\",\n \"components\",\n this.package,\n \"documentation\",\n \"public\",\n \"fonts\",\n ),\n ),\n setupDev(\n resolve(\n fileURLToPath(new URL(\".\", import.meta.url)),\n \"..\",\n \"..\",\n \"packages\",\n \"jokul\",\n \"src\",\n \"components\",\n this.package,\n \"documentation\",\n ),\n ),\n ],\n resolve: {\n alias: {\n \"doc-utils\": resolve(\n fileURLToPath(new URL(\".\", import.meta.url)),\n \"..\",\n \"dev-example\",\n ),\n },\n },\n root: resolve(\n fileURLToPath(new URL(\".\", import.meta.url)),\n \"..\",\n \"..\",\n \"packages\",\n \"jokul\",\n \"src\",\n \"components\",\n this.package,\n \"documentation\",\n ),\n define: {\n __CI__: \"true\",\n },\n });\n await this.server.listen();\n return this.server.config.server.port as number;\n }\n\n async close() {\n await this.server?.close();\n }\n\n async open(path: string = \"/\") {\n await this.page.goto(\n `http://localhost:${this.server?.config.server.port}${path}`,\n );\n }\n\n async clickElement(selector: string) {\n await this.page.click(selector);\n }\n\n async pressKey(key: string) {\n await this.page.keyboard.press(key);\n }\n\n async checkProp(testid: string) {\n await this.page.getByTestId(testid).first().check({ force: true });\n return this;\n }\n\n async setDensity(value: \"compact\" | \"default\") {\n await this.page\n .getByTestId(`density-${value}`)\n .first()\n .check({ force: true });\n return this;\n }\n\n async setTheme(value: \"light\" | \"dark\") {\n await this.page\n .getByTestId(`theme-${value}`)\n .first()\n .check({ force: true });\n return this;\n }\n\n private async snapshot(name: string, selector?: string) {\n await this.page.evaluate(() => document.fonts.ready);\n\n await this.page.evaluate(() => {\n return new Promise((resolve) => setTimeout(resolve, 600));\n });\n\n const locator = this.page\n .locator(selector || \"[data-testid='component-example']\")\n .first();\n const box = await locator.boundingBox();\n\n if (!box) {\n return;\n }\n\n const screenshotRoot = `packages/jokul/src/components/${this.package}/integration/__screenshots__`;\n const testName = test.info().title.replaceAll(\" \", \"-\");\n const screenshotPath = `${screenshotRoot}/${testName}-${this.projectName}-${name}.png`;\n\n const hasScreenshot = existsSync(screenshotPath);\n\n if (hasScreenshot) {\n await expect(\n await this.page.screenshot({\n animations: \"disabled\",\n caret: \"hide\",\n clip: { ...box },\n }),\n ).toMatchSnapshot(`${this.projectName}-${name}`);\n } else {\n await this.page.screenshot({\n animations: \"disabled\",\n caret: \"hide\",\n clip: { ...box },\n path: screenshotPath,\n });\n }\n }\n\n async snapshots({\n before,\n after,\n selector,\n }: {\n before?: () => Promise<any>;\n after?: () => Promise<any>;\n selector?: string;\n } = {}) {\n await this.setDensity(\"default\");\n await this.setTheme(\"light\");\n await before?.();\n await this.snapshot(\"default\", selector);\n await after?.();\n\n await this.setDensity(\"default\");\n await this.setTheme(\"dark\");\n await before?.();\n await this.snapshot(\"default-dark\", selector);\n await after?.();\n\n await this.setDensity(\"compact\");\n await this.setTheme(\"light\");\n await before?.();\n await this.snapshot(\"compact-light\", selector);\n await after?.();\n\n await this.setDensity(\"compact\");\n await this.setTheme(\"dark\");\n await before?.();\n await this.snapshot(\"compact-dark\", selector);\n await after?.();\n }\n}\n","import { cpSync, existsSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nfunction copyJklFonts(destination) {\n return {\n name: \"copy-jkl-fonts\",\n configResolved() {\n const source = resolve(\n fileURLToPath(new URL(\".\", import.meta.url)),\n \"..\",\n \"..\",\n \"packages\",\n \"webfonts\",\n \"fonts\",\n );\n if (!existsSync(destination)) {\n cpSync(source, destination, {\n recursive: true,\n });\n console.log(`Copied font files into \"${destination}\"`);\n }\n },\n };\n}\n\nexport { copyJklFonts };\n"],"names":["setupDev","destination","name","buildStart","cpSync","resolve","fileURLToPath","URL","document","require","pathToFileURL","__filename","href","_documentCurrentScript","src","baseURI","console","log","buildEnd","rmSync","constructor","args","__publicField","this","page","package","projectName","async","server","createServer","mode","configFile","plugins","react","configResolved","source","existsSync","recursive","alias","root","define","__CI__","listen","config","port","_a","close","path","goto","selector","click","key","keyboard","press","testid","getByTestId","first","check","force","value","evaluate","fonts","ready","Promise","setTimeout","box","locator","boundingBox","screenshotPath","test","info","title","replaceAll","expect","screenshot","animations","caret","clip","toMatchSnapshot","before","after","setDensity","setTheme","snapshot"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var t=Object.defineProperty,a=(a,e,i)=>((a,e,i)=>e in a?t(a,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):a[e]=i)(a,"symbol"!=typeof e?e+"":e,i);import{test as e,expect as i}from"@playwright/test";import s from"@vitejs/plugin-react-swc";import{resolve as o}from"node:path";import{fileURLToPath as n}from"node:url";import{createServer as c}from"vite";import{existsSync as r,cpSync as l,rmSync as p}from"node:fs";function h(t){return{name:"setup-dev",buildStart(){l(o(n(new URL("data:text/javascript;base64,ZXhwb3J0ICogZnJvbSAiLi9jb3B5LWprbC1mb250cy5tanMiOwpleHBvcnQgKiBmcm9tICIuL3NldHVwLWRldi5tanMiOwo=",import.meta.url)),"index.html"),o(t,"index.html")),l(o(n(new URL("data:text/javascript;base64,ZXhwb3J0ICogZnJvbSAiLi9jb3B5LWprbC1mb250cy5tanMiOwpleHBvcnQgKiBmcm9tICIuL3NldHVwLWRldi5tanMiOwo=",import.meta.url)),"main.tsx"),o(t,"main.tsx")),console.log(`Copied index.html and main.tsx into "${t}"`)},buildEnd(){p(o(t,"index.html")),p(o(t,"main.tsx")),console.log(`Deleted index.html and main.tsx from "${t}"`)}}}class m{constructor(t){a(this,"server"),a(this,"page"),a(this,"package"),a(this,"projectName"),this.page=t.page,this.package=t.package,this.projectName=t.projectName}async init(){return this.server=await c({mode:"production",configFile:!1,plugins:[s(),(t=o(n(new URL("data:application/octet-stream;base64,ZXhwb3J0IHsgVGVzdEhlbHBlciB9IGZyb20gIi4vVGVzdEhlbHBlci5tdHMiOwo=",import.meta.url)),"..","..","packages","jokul","src","components",this.package,"documentation","public","fonts"),{name:"copy-jkl-fonts",configResolved(){const a=o(n(new URL("data:text/javascript;base64,ZXhwb3J0ICogZnJvbSAiLi9jb3B5LWprbC1mb250cy5tanMiOwpleHBvcnQgKiBmcm9tICIuL3NldHVwLWRldi5tanMiOwo=",import.meta.url)),"..","..","packages","webfonts","fonts");r(t)||(l(a,t,{recursive:!0}),console.log(`Copied font files into "${t}"`))}}),h(o(n(new URL("data:application/octet-stream;base64,ZXhwb3J0IHsgVGVzdEhlbHBlciB9IGZyb20gIi4vVGVzdEhlbHBlci5tdHMiOwo=",import.meta.url)),"..","..","packages","jokul","src","components",this.package,"documentation"))],resolve:{alias:{"doc-utils":o(n(new URL("data:application/octet-stream;base64,ZXhwb3J0IHsgVGVzdEhlbHBlciB9IGZyb20gIi4vVGVzdEhlbHBlci5tdHMiOwo=",import.meta.url)),"..","dev-example")}},root:o(n(new URL("data:application/octet-stream;base64,ZXhwb3J0IHsgVGVzdEhlbHBlciB9IGZyb20gIi4vVGVzdEhlbHBlci5tdHMiOwo=",import.meta.url)),"..","..","packages","jokul","src","components",this.package,"documentation"),define:{__CI__:"true"}}),await this.server.listen(),this.server.config.server.port;var t}async close(){var t;await(null==(t=this.server)?void 0:t.close())}async open(t="/"){var a;await this.page.goto(`http://localhost:${null==(a=this.server)?void 0:a.config.server.port}${t}`)}async clickElement(t){await this.page.click(t)}async pressKey(t){await this.page.keyboard.press(t)}async checkProp(t){return await this.page.getByTestId(t).first().check({force:!0}),this}async setDensity(t){return await this.page.getByTestId(`density-${t}`).first().check({force:!0}),this}async setTheme(t){return await this.page.getByTestId(`theme-${t}`).first().check({force:!0}),this}async snapshot(t,a){await this.page.evaluate((()=>document.fonts.ready)),await this.page.evaluate((()=>new Promise((t=>setTimeout(t,600)))));const s=await this.page.locator(a||"[data-testid='component-example']").first().boundingBox();if(!s)return;const o=`${`packages/jokul/src/components/${this.package}/integration/__screenshots__`}/${e.info().title.replaceAll(" ","-")}-${this.projectName}-${t}.png`;r(o)?await i(await this.page.screenshot({animations:"disabled",caret:"hide",clip:{...s}})).toMatchSnapshot(`${this.projectName}-${t}`):await this.page.screenshot({animations:"disabled",caret:"hide",clip:{...s},path:o})}async snapshots({before:t,after:a,selector:e}={}){await this.setDensity("default"),await this.setTheme("light"),await(null==t?void 0:t()),await this.snapshot("default",e),await(null==a?void 0:a()),await this.setDensity("default"),await this.setTheme("dark"),await(null==t?void 0:t()),await this.snapshot("default-dark",e),await(null==a?void 0:a()),await this.setDensity("compact"),await this.setTheme("light"),await(null==t?void 0:t()),await this.snapshot("compact-light",e),await(null==a?void 0:a()),await this.setDensity("compact"),await this.setTheme("dark"),await(null==t?void 0:t()),await this.snapshot("compact-dark",e),await(null==a?void 0:a())}}export{m as T};
|
|
2
|
-
//# sourceMappingURL=TestHelper-CT9BmbYb.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestHelper-CT9BmbYb.js","sources":["../../../utils/vite/setup-dev.mjs","../../../utils/playwright/TestHelper.mts","../../../utils/vite/copy-jkl-fonts.mjs"],"sourcesContent":["import { cpSync, rmSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nfunction setupDev(destination) {\n return {\n name: \"setup-dev\",\n buildStart() {\n cpSync(\n resolve(fileURLToPath(new URL(\".\", import.meta.url)), \"index.html\"),\n resolve(destination, \"index.html\"),\n );\n cpSync(resolve(fileURLToPath(new URL(\".\", import.meta.url)), \"main.tsx\"), resolve(destination, \"main.tsx\"));\n console.log(`Copied index.html and main.tsx into \"${destination}\"`);\n },\n buildEnd() {\n rmSync(resolve(destination, \"index.html\"));\n rmSync(resolve(destination, \"main.tsx\"));\n console.log(`Deleted index.html and main.tsx from \"${destination}\"`);\n },\n };\n}\n\nexport { setupDev };\n","import { expect, Page, test } from \"@playwright/test\";\nimport react from \"@vitejs/plugin-react-swc\";\nimport { resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { createServer, ViteDevServer } from \"vite\";\n/* @ts-ignore */\nimport { copyJklFonts } from \"../vite/copy-jkl-fonts.mjs\";\nimport { existsSync } from \"node:fs\";\n/* @ts-ignore */\nimport { setupDev } from \"../vite/setup-dev.mjs\";\n\nexport class TestHelper {\n private server?: ViteDevServer;\n private page: Page;\n private package: string;\n private projectName: string;\n\n constructor(args: { page: Page; package: string; projectName: string }) {\n this.page = args.page;\n this.package = args.package;\n this.projectName = args.projectName;\n }\n\n async init() {\n this.server = await createServer({\n mode: \"production\",\n configFile: false,\n plugins: [\n react(),\n copyJklFonts(\n resolve(\n fileURLToPath(new URL(\".\", import.meta.url)),\n \"..\",\n \"..\",\n \"packages\",\n \"jokul\",\n \"src\",\n \"components\",\n this.package,\n \"documentation\",\n \"public\",\n \"fonts\",\n ),\n ),\n setupDev(\n resolve(\n fileURLToPath(new URL(\".\", import.meta.url)),\n \"..\",\n \"..\",\n \"packages\",\n \"jokul\",\n \"src\",\n \"components\",\n this.package,\n \"documentation\",\n ),\n ),\n ],\n resolve: {\n alias: {\n \"doc-utils\": resolve(\n fileURLToPath(new URL(\".\", import.meta.url)),\n \"..\",\n \"dev-example\",\n ),\n },\n },\n root: resolve(\n fileURLToPath(new URL(\".\", import.meta.url)),\n \"..\",\n \"..\",\n \"packages\",\n \"jokul\",\n \"src\",\n \"components\",\n this.package,\n \"documentation\",\n ),\n define: {\n __CI__: \"true\",\n },\n });\n await this.server.listen();\n return this.server.config.server.port as number;\n }\n\n async close() {\n await this.server?.close();\n }\n\n async open(path: string = \"/\") {\n await this.page.goto(\n `http://localhost:${this.server?.config.server.port}${path}`,\n );\n }\n\n async clickElement(selector: string) {\n await this.page.click(selector);\n }\n\n async pressKey(key: string) {\n await this.page.keyboard.press(key);\n }\n\n async checkProp(testid: string) {\n await this.page.getByTestId(testid).first().check({ force: true });\n return this;\n }\n\n async setDensity(value: \"compact\" | \"default\") {\n await this.page\n .getByTestId(`density-${value}`)\n .first()\n .check({ force: true });\n return this;\n }\n\n async setTheme(value: \"light\" | \"dark\") {\n await this.page\n .getByTestId(`theme-${value}`)\n .first()\n .check({ force: true });\n return this;\n }\n\n private async snapshot(name: string, selector?: string) {\n await this.page.evaluate(() => document.fonts.ready);\n\n await this.page.evaluate(() => {\n return new Promise((resolve) => setTimeout(resolve, 600));\n });\n\n const locator = this.page\n .locator(selector || \"[data-testid='component-example']\")\n .first();\n const box = await locator.boundingBox();\n\n if (!box) {\n return;\n }\n\n const screenshotRoot = `packages/jokul/src/components/${this.package}/integration/__screenshots__`;\n const testName = test.info().title.replaceAll(\" \", \"-\");\n const screenshotPath = `${screenshotRoot}/${testName}-${this.projectName}-${name}.png`;\n\n const hasScreenshot = existsSync(screenshotPath);\n\n if (hasScreenshot) {\n await expect(\n await this.page.screenshot({\n animations: \"disabled\",\n caret: \"hide\",\n clip: { ...box },\n }),\n ).toMatchSnapshot(`${this.projectName}-${name}`);\n } else {\n await this.page.screenshot({\n animations: \"disabled\",\n caret: \"hide\",\n clip: { ...box },\n path: screenshotPath,\n });\n }\n }\n\n async snapshots({\n before,\n after,\n selector,\n }: {\n before?: () => Promise<any>;\n after?: () => Promise<any>;\n selector?: string;\n } = {}) {\n await this.setDensity(\"default\");\n await this.setTheme(\"light\");\n await before?.();\n await this.snapshot(\"default\", selector);\n await after?.();\n\n await this.setDensity(\"default\");\n await this.setTheme(\"dark\");\n await before?.();\n await this.snapshot(\"default-dark\", selector);\n await after?.();\n\n await this.setDensity(\"compact\");\n await this.setTheme(\"light\");\n await before?.();\n await this.snapshot(\"compact-light\", selector);\n await after?.();\n\n await this.setDensity(\"compact\");\n await this.setTheme(\"dark\");\n await before?.();\n await this.snapshot(\"compact-dark\", selector);\n await after?.();\n }\n}\n","import { cpSync, existsSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nfunction copyJklFonts(destination) {\n return {\n name: \"copy-jkl-fonts\",\n configResolved() {\n const source = resolve(\n fileURLToPath(new URL(\".\", import.meta.url)),\n \"..\",\n \"..\",\n \"packages\",\n \"webfonts\",\n \"fonts\",\n );\n if (!existsSync(destination)) {\n cpSync(source, destination, {\n recursive: true,\n });\n console.log(`Copied font files into \"${destination}\"`);\n }\n },\n };\n}\n\nexport { copyJklFonts };\n"],"names":["setupDev","destination","name","buildStart","cpSync","resolve","fileURLToPath","URL","url","console","log","buildEnd","rmSync","TestHelper","constructor","args","__publicField","this","page","package","projectName","async","server","createServer","mode","configFile","plugins","react","configResolved","source","existsSync","recursive","alias","root","define","__CI__","listen","config","port","_a","close","path","goto","selector","click","key","keyboard","press","testid","getByTestId","first","check","force","value","evaluate","document","fonts","ready","Promise","setTimeout","box","locator","boundingBox","screenshotRoot","screenshotPath","test","info","title","replaceAll","expect","screenshot","animations","caret","clip","toMatchSnapshot","before","after","setDensity","setTheme","snapshot"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("../../../clsx-E3yX_9sL.cjs"),t=require("react"),n=require("../../hooks/useAnimatedDetails/useAnimatedDetails.cjs"),a=require("./Expander.cjs");exports.ExpandSection=({children:i,className:r,expandButtonProps:d,isExpanded:c=!1,density:l,onClick:o,title:p,useAnimatedHeightOptions:x,...u})=>{const[m,j]=t.useState(c);t.useEffect((()=>{j(c)}),[c]);const{detailsRef:f,summaryRef:k,contentRef:h,onSummaryClick:y}=n.useAnimatedDetails({onOpenChange:(e,s)=>{j(e),o&&o(s,e)},isExpanded:c});return e.jsxs("details",{"data-testid":"jkl-expand-section",className:s.clsx("jkl-expand-section",r),...u,ref:f,children:[e.jsx(a.Expander,{as:"summary",...d,density:l,isExpanded:m,onClick:y,ref:k,children:p}),e.jsx("div",{"data-testid":"jkl-expand-section__content-wrapper",className:"jkl-expand-section__content-wrapper",ref:h,children:e.jsx("div",{className:"jkl-expand-section__content",children:i})})]})};
|
|
2
|
-
//# sourceMappingURL=ExpandSection.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExpandSection.cjs","sources":["../../../../src/components/expander/ExpandSection.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport { Density } from \"../../core/types.js\";\nimport { useAnimatedDetails } from \"../../hooks/useAnimatedDetails/useAnimatedDetails.js\";\nimport { UseAnimatedHeightOptions } from \"../../hooks/useAnimatedHeight/types.js\";\nimport { Expander, ExpanderProps } from \"./Expander.js\";\n\nexport interface ExpandSectionProps {\n /**\n * Innholdet som skal kunne ekspanderes og skjules.\n * Om du ikke trenger at komponenten tar seg av visning og skjuling av\n * innholdet skal du bruke `ExpandButton` direkte. Det sparer deg for\n * å laste inn unødvendige avhengigheter.\n */\n children: ReactNode;\n title: string;\n className?: string;\n density?: Density;\n onClick?: (e: React.MouseEvent<HTMLElement>, isExpanded: boolean) => void;\n expandButtonProps?: Omit<\n ExpanderProps,\n \"id\" | \"isExpanded\" | \"onClick\" | \"hideLabel\"\n >;\n useAnimatedHeightOptions?: UseAnimatedHeightOptions;\n /** Om du ønsker å styre komponenten utenfra */\n isExpanded?: boolean;\n}\n\nexport const ExpandSection = ({\n children,\n className,\n expandButtonProps,\n isExpanded = false,\n density,\n onClick,\n title,\n useAnimatedHeightOptions,\n ...rest\n}: ExpandSectionProps): JSX.Element => {\n const [expanded, setIsExpanded] = useState(isExpanded);\n\n useEffect(() => {\n setIsExpanded(isExpanded);\n }, [isExpanded]);\n\n const { detailsRef, summaryRef, contentRef, onSummaryClick } =\n useAnimatedDetails({\n onOpenChange: (open, e) => {\n setIsExpanded(open);\n if (onClick) {\n onClick(e, open);\n }\n },\n isExpanded,\n });\n\n return (\n <details\n data-testid={\"jkl-expand-section\"}\n className={clsx(\"jkl-expand-section\", className)}\n {...rest}\n ref={detailsRef}\n >\n <Expander\n as={\"summary\"}\n {...expandButtonProps}\n density={density}\n isExpanded={expanded}\n onClick={onSummaryClick}\n ref={summaryRef}\n >\n {title}\n </Expander>\n <div\n data-testid=\"jkl-expand-section__content-wrapper\"\n className=\"jkl-expand-section__content-wrapper\"\n ref={contentRef}\n >\n <div className=\"jkl-expand-section__content\">{children}</div>\n </div>\n </details>\n );\n};\n"],"names":["children","className","expandButtonProps","isExpanded","density","onClick","title","useAnimatedHeightOptions","rest","expanded","setIsExpanded","useState","useEffect","detailsRef","summaryRef","contentRef","onSummaryClick","useAnimatedDetails","onOpenChange","open","e","jsxs","clsx","ref","jsx","Expander","as"],"mappings":"qSA4B6B,EACzBA,SAAAA,EACAC,UAAAA,EACAC,kBAAAA,EACAC,WAAAA,GAAa,EACbC,QAAAA,EACAC,QAAAA,EACAC,MAAAA,EACAC,yBAAAA,KACGC,MAEH,MAAOC,EAAUC,GAAiBC,WAASR,GAE3CS,EAAAA,WAAU,KACNF,EAAcP,EAAU,GACzB,CAACA,IAEJ,MAAQU,WAAAA,EAAYC,WAAAA,EAAYC,WAAAA,EAAYC,eAAAA,GACxCC,EAAAA,mBAAmB,CACfC,aAAc,CAACC,EAAMC,KACjBV,EAAcS,GACVd,GACAA,EAAQe,EAAGD,EAAI,EAGvBhB,WAAAA,IAIJ,OAAAkB,EAAAA,KAAC,UAAA,CACG,cAAa,qBACbpB,UAAWqB,EAAAA,KAAK,qBAAsBrB,MAClCO,EACJe,IAAKV,EAELb,SAAA,CAAAwB,EAAAA,IAACC,EAAAA,SAAA,CACGC,GAAI,aACAxB,EACJE,QAAAA,EACAD,WAAYM,EACZJ,QAASW,EACTO,IAAKT,EAEJd,SAAAM,IAELkB,EAAAA,IAAC,MAAA,CACG,cAAY,sCACZvB,UAAU,sCACVsB,IAAKR,EAELf,SAACwB,EAAAA,IAAA,MAAA,CAAIvB,UAAU,8BAA+BD,SAAAA,QAClD"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{c as t}from"../../../clsx-BeLtu-UY.js";import{useState as a,useEffect as n}from"react";import{useAnimatedDetails as i}from"../../hooks/useAnimatedDetails/useAnimatedDetails.js";import{Expander as d}from"./Expander.js";const r=({children:r,className:o,expandButtonProps:c,isExpanded:m=!1,density:p,onClick:l,title:x,useAnimatedHeightOptions:f,...u})=>{const[j,k]=a(m);n((()=>{k(m)}),[m]);const{detailsRef:h,summaryRef:E,contentRef:_,onSummaryClick:y}=i({onOpenChange:(e,s)=>{k(e),l&&l(s,e)},isExpanded:m});return e("details",{"data-testid":"jkl-expand-section",className:t("jkl-expand-section",o),...u,ref:h,children:[s(d,{as:"summary",...c,density:p,isExpanded:j,onClick:y,ref:E,children:x}),s("div",{"data-testid":"jkl-expand-section__content-wrapper",className:"jkl-expand-section__content-wrapper",ref:_,children:s("div",{className:"jkl-expand-section__content",children:r})})]})};export{r as ExpandSection};
|
|
2
|
-
//# sourceMappingURL=ExpandSection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExpandSection.js","sources":["../../../../src/components/expander/ExpandSection.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport { Density } from \"../../core/types.js\";\nimport { useAnimatedDetails } from \"../../hooks/useAnimatedDetails/useAnimatedDetails.js\";\nimport { UseAnimatedHeightOptions } from \"../../hooks/useAnimatedHeight/types.js\";\nimport { Expander, ExpanderProps } from \"./Expander.js\";\n\nexport interface ExpandSectionProps {\n /**\n * Innholdet som skal kunne ekspanderes og skjules.\n * Om du ikke trenger at komponenten tar seg av visning og skjuling av\n * innholdet skal du bruke `ExpandButton` direkte. Det sparer deg for\n * å laste inn unødvendige avhengigheter.\n */\n children: ReactNode;\n title: string;\n className?: string;\n density?: Density;\n onClick?: (e: React.MouseEvent<HTMLElement>, isExpanded: boolean) => void;\n expandButtonProps?: Omit<\n ExpanderProps,\n \"id\" | \"isExpanded\" | \"onClick\" | \"hideLabel\"\n >;\n useAnimatedHeightOptions?: UseAnimatedHeightOptions;\n /** Om du ønsker å styre komponenten utenfra */\n isExpanded?: boolean;\n}\n\nexport const ExpandSection = ({\n children,\n className,\n expandButtonProps,\n isExpanded = false,\n density,\n onClick,\n title,\n useAnimatedHeightOptions,\n ...rest\n}: ExpandSectionProps): JSX.Element => {\n const [expanded, setIsExpanded] = useState(isExpanded);\n\n useEffect(() => {\n setIsExpanded(isExpanded);\n }, [isExpanded]);\n\n const { detailsRef, summaryRef, contentRef, onSummaryClick } =\n useAnimatedDetails({\n onOpenChange: (open, e) => {\n setIsExpanded(open);\n if (onClick) {\n onClick(e, open);\n }\n },\n isExpanded,\n });\n\n return (\n <details\n data-testid={\"jkl-expand-section\"}\n className={clsx(\"jkl-expand-section\", className)}\n {...rest}\n ref={detailsRef}\n >\n <Expander\n as={\"summary\"}\n {...expandButtonProps}\n density={density}\n isExpanded={expanded}\n onClick={onSummaryClick}\n ref={summaryRef}\n >\n {title}\n </Expander>\n <div\n data-testid=\"jkl-expand-section__content-wrapper\"\n className=\"jkl-expand-section__content-wrapper\"\n ref={contentRef}\n >\n <div className=\"jkl-expand-section__content\">{children}</div>\n </div>\n </details>\n );\n};\n"],"names":["ExpandSection","children","className","expandButtonProps","isExpanded","density","onClick","title","useAnimatedHeightOptions","rest","expanded","setIsExpanded","useState","useEffect","detailsRef","summaryRef","contentRef","onSummaryClick","useAnimatedDetails","onOpenChange","open","e","jsxs","clsx","ref","jsx","Expander","as"],"mappings":"mRA4BO,MAAMA,EAAgB,EACzBC,SAAAA,EACAC,UAAAA,EACAC,kBAAAA,EACAC,WAAAA,GAAa,EACbC,QAAAA,EACAC,QAAAA,EACAC,MAAAA,EACAC,yBAAAA,KACGC,MAEH,MAAOC,EAAUC,GAAiBC,EAASR,GAE3CS,GAAU,KACNF,EAAcP,EAAU,GACzB,CAACA,IAEE,MAAEU,WAAAA,EAAYC,WAAAA,EAAYC,WAAAA,EAAYC,eAAAA,GACxCC,EAAmB,CACfC,aAAc,CAACC,EAAMC,KACjBV,EAAcS,GACVd,GACAA,EAAQe,EAAGD,EAAI,EAGvBhB,WAAAA,IAIJ,OAAAkB,EAAC,UAAA,CACG,cAAa,qBACbpB,UAAWqB,EAAK,qBAAsBrB,MAClCO,EACJe,IAAKV,EAELb,SAAA,CAAAwB,EAACC,EAAA,CACGC,GAAI,aACAxB,EACJE,QAAAA,EACAD,WAAYM,EACZJ,QAASW,EACTO,IAAKT,EAEJd,SAAAM,IAELkB,EAAC,MAAA,CACG,cAAY,sCACZvB,UAAU,sCACVsB,IAAKR,EAELf,SAACwB,EAAA,MAAA,CAAIvB,UAAU,8BAA+BD,SAAAA,QAClD"}
|