{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "src/index.ts",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "Avatar",
          "declaration": {
            "name": "default",
            "module": "./avatar/Avatar.js"
          }
        },
        {
          "kind": "js",
          "name": "Badge",
          "declaration": {
            "name": "default",
            "module": "./badge/Badge.js"
          }
        },
        {
          "kind": "js",
          "name": "Banner",
          "declaration": {
            "name": "default",
            "module": "./banner/Banner.js"
          }
        },
        {
          "kind": "js",
          "name": "ButtonGroup",
          "declaration": {
            "name": "default",
            "module": "./button-group/ButtonGroup.js"
          }
        },
        {
          "kind": "js",
          "name": "Button",
          "declaration": {
            "name": "default",
            "module": "./button/Button.js"
          }
        },
        {
          "kind": "js",
          "name": "Calendar",
          "declaration": {
            "name": "default",
            "module": "./calendar/Calendar.js"
          }
        },
        {
          "kind": "js",
          "name": "Card",
          "declaration": {
            "name": "default",
            "module": "./card/Card.js"
          }
        },
        {
          "kind": "js",
          "name": "Checkbox",
          "declaration": {
            "name": "default",
            "module": "./checkbox/Checkbox.js"
          }
        },
        {
          "kind": "js",
          "name": "CommandMenu",
          "declaration": {
            "name": "default",
            "module": "./command-menu/CommandMenu.js"
          }
        },
        {
          "kind": "js",
          "name": "CommandMenuAction",
          "declaration": {
            "name": "default",
            "module": "./command-menu/CommandMenuAction.js"
          }
        },
        {
          "kind": "js",
          "name": "DatePicker",
          "declaration": {
            "name": "default",
            "module": "./date-picker/DatePicker.js"
          }
        },
        {
          "kind": "js",
          "name": "Divider",
          "declaration": {
            "name": "default",
            "module": "./divider/Divider.js"
          }
        },
        {
          "kind": "js",
          "name": "Drawer",
          "declaration": {
            "name": "default",
            "module": "./drawer/Drawer.js"
          }
        },
        {
          "kind": "js",
          "name": "DropdownGroup",
          "declaration": {
            "name": "default",
            "module": "./dropdown-group/DropdownGroup.js"
          }
        },
        {
          "kind": "js",
          "name": "DropdownItem",
          "declaration": {
            "name": "default",
            "module": "./dropdown-item/DropdownItem.js"
          }
        },
        {
          "kind": "js",
          "name": "DropdownSubmenu",
          "declaration": {
            "name": "default",
            "module": "./dropdown-submenu/DropdownSubmenu.js"
          }
        },
        {
          "kind": "js",
          "name": "Dropdown",
          "declaration": {
            "name": "default",
            "module": "./dropdown/Dropdown.js"
          }
        },
        {
          "kind": "js",
          "name": "EmptyState",
          "declaration": {
            "name": "default",
            "module": "./empty-state/EmptyState.js"
          }
        },
        {
          "kind": "js",
          "name": "Fieldset",
          "declaration": {
            "name": "default",
            "module": "./fieldset/Fieldset.js"
          }
        },
        {
          "kind": "js",
          "name": "Footer",
          "declaration": {
            "name": "default",
            "module": "./footer/Footer.js"
          }
        },
        {
          "kind": "js",
          "name": "Header",
          "declaration": {
            "name": "default",
            "module": "./header/Header.js"
          }
        },
        {
          "kind": "js",
          "name": "Icon",
          "declaration": {
            "name": "default",
            "module": "./icon/Icon.js"
          }
        },
        {
          "kind": "js",
          "name": "Input",
          "declaration": {
            "name": "default",
            "module": "./input/Input.js"
          }
        },
        {
          "kind": "js",
          "name": "Layout",
          "declaration": {
            "name": "default",
            "module": "./layout/Layout.js"
          }
        },
        {
          "kind": "js",
          "name": "isTranslationRegistered",
          "declaration": {
            "name": "isTranslationRegistered",
            "module": "./localization/translation.js"
          }
        },
        {
          "kind": "js",
          "name": "registerTranslation",
          "declaration": {
            "name": "registerTranslation",
            "module": "./localization/translation.js"
          }
        },
        {
          "kind": "js",
          "name": "Translation",
          "declaration": {
            "name": "Translation",
            "module": "./localization/translation.js"
          }
        },
        {
          "kind": "js",
          "name": "Message",
          "declaration": {
            "name": "default",
            "module": "./message/Message.js"
          }
        },
        {
          "kind": "js",
          "name": "Modal",
          "declaration": {
            "name": "default",
            "module": "./modal/Modal.js"
          }
        },
        {
          "kind": "js",
          "name": "ModalCancelEvent",
          "declaration": {
            "name": "ModalCancelEvent",
            "module": "./modal/Modal.js"
          }
        },
        {
          "kind": "js",
          "name": "ModalCloseEvent",
          "declaration": {
            "name": "ModalCloseEvent",
            "module": "./modal/Modal.js"
          }
        },
        {
          "kind": "js",
          "name": "NavGroup",
          "declaration": {
            "name": "default",
            "module": "./nav-group/NavGroup.js"
          }
        },
        {
          "kind": "js",
          "name": "NavItem",
          "declaration": {
            "name": "default",
            "module": "./nav-item/NavItem.js"
          }
        },
        {
          "kind": "js",
          "name": "NavToggle",
          "declaration": {
            "name": "default",
            "module": "./nav-toggle/NavToggle.js"
          }
        },
        {
          "kind": "js",
          "name": "Navigation",
          "declaration": {
            "name": "default",
            "module": "./navigation/Navigation.js"
          }
        },
        {
          "kind": "js",
          "name": "NotificationGroup",
          "declaration": {
            "name": "default",
            "module": "./notification-group/NotificationGroup.js"
          }
        },
        {
          "kind": "js",
          "name": "Notification",
          "declaration": {
            "name": "default",
            "module": "./notification/Notification.js"
          }
        },
        {
          "kind": "js",
          "name": "Popout",
          "declaration": {
            "name": "default",
            "module": "./popout/Popout.js"
          }
        },
        {
          "kind": "js",
          "name": "ProgressBar",
          "declaration": {
            "name": "default",
            "module": "./progress-bar/ProgressBar.js"
          }
        },
        {
          "kind": "js",
          "name": "Progress",
          "declaration": {
            "name": "default",
            "module": "./progress/Progress.js"
          }
        },
        {
          "kind": "js",
          "name": "Qrcode",
          "declaration": {
            "name": "default",
            "module": "./qrcode/Qrcode.js"
          }
        },
        {
          "kind": "js",
          "name": "Radio",
          "declaration": {
            "name": "default",
            "module": "./radio/Radio.js"
          }
        },
        {
          "kind": "js",
          "name": "Range",
          "declaration": {
            "name": "default",
            "module": "./range/Range.js"
          }
        },
        {
          "kind": "js",
          "name": "SegmentedControlItem",
          "declaration": {
            "name": "default",
            "module": "./segmented-control-item/SegmentedControlItem.js"
          }
        },
        {
          "kind": "js",
          "name": "SegmentedControl",
          "declaration": {
            "name": "default",
            "module": "./segmented-control/SegmentedControl.js"
          }
        },
        {
          "kind": "js",
          "name": "Select",
          "declaration": {
            "name": "default",
            "module": "./select/Select.js"
          }
        },
        {
          "kind": "js",
          "name": "Skeleton",
          "declaration": {
            "name": "default",
            "module": "./skeleton/Skeleton.js"
          }
        },
        {
          "kind": "js",
          "name": "Spinner",
          "declaration": {
            "name": "default",
            "module": "./spinner/Spinner.js"
          }
        },
        {
          "kind": "js",
          "name": "Stack",
          "declaration": {
            "name": "default",
            "module": "./stack/Stack.js"
          }
        },
        {
          "kind": "js",
          "name": "TabGroup",
          "declaration": {
            "name": "default",
            "module": "./tab-group/TabGroup.js"
          }
        },
        {
          "kind": "js",
          "name": "TabPanel",
          "declaration": {
            "name": "default",
            "module": "./tab-panel/TabPanel.js"
          }
        },
        {
          "kind": "js",
          "name": "Tab",
          "declaration": {
            "name": "default",
            "module": "./tab/Tab.js"
          }
        },
        {
          "kind": "js",
          "name": "Table",
          "declaration": {
            "name": "default",
            "module": "./table/Table.js"
          }
        },
        {
          "kind": "js",
          "name": "TagGroup",
          "declaration": {
            "name": "default",
            "module": "./tag-group/TagGroup.js"
          }
        },
        {
          "kind": "js",
          "name": "Tag",
          "declaration": {
            "name": "default",
            "module": "./tag/Tag.js"
          }
        },
        {
          "kind": "js",
          "name": "Textarea",
          "declaration": {
            "name": "default",
            "module": "./textarea/Textarea.js"
          }
        },
        {
          "kind": "js",
          "name": "ToastGroup",
          "declaration": {
            "name": "default",
            "module": "./toast-group/ToastGroup.js"
          }
        },
        {
          "kind": "js",
          "name": "Toast",
          "declaration": {
            "name": "default",
            "module": "./toast/Toast.js"
          }
        },
        {
          "kind": "js",
          "name": "Toggle",
          "declaration": {
            "name": "default",
            "module": "./toggle/Toggle.js"
          }
        },
        {
          "kind": "js",
          "name": "Tooltip",
          "declaration": {
            "name": "default",
            "module": "./tooltip/Tooltip.js"
          }
        },
        {
          "kind": "js",
          "name": "TopBar",
          "declaration": {
            "name": "default",
            "module": "./top-bar/TopBar.js"
          }
        },
        {
          "kind": "js",
          "name": "VisuallyHidden",
          "declaration": {
            "name": "default",
            "module": "./visually-hidden/VisuallyHidden.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/avatar/Avatar.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Avatar', component: 'nord-avatar', tags: ['autodocs'], argTypes: { size: { control: 'select', options: ['s', 'm', 'l', 'xl', 'xxl', 'xxxl'], }, src: { control: 'text' }, name: { control: 'text' }, icon: { control: 'text' }, variant: { control: 'select', options: ['default', 'square'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { size: 'm', variant: 'default', content: '', }, render: args => html` <nord-avatar size=${args.size} src=${args.src || nothing} name=${args.name || nothing} icon=${args.icon || nothing} variant=${args.variant}>${args.content}</nord-avatar> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Laura Williams\" size=\"s\"></nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"m\"></nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"l\"></nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"xl\"></nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"xxl\"></nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"xxxl\"></nord-avatar> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomImage",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar src=\"https://nordhealth.design/img/avatar.jpg\" name=\"Laura Williams\" size=\"s\"></nord-avatar> <nord-avatar src=\"https://nordhealth.design/img/avatar.jpg\" name=\"Laura Williams\" size=\"m\"></nord-avatar> <nord-avatar src=\"https://nordhealth.design/img/avatar.jpg\" name=\"Laura Williams\" size=\"l\"></nord-avatar> <nord-avatar src=\"https://nordhealth.design/img/avatar.jpg\" name=\"Laura Williams\" size=\"xl\"></nord-avatar> <nord-avatar src=\"https://nordhealth.design/img/avatar.jpg\" name=\"Laura Williams\" size=\"xxl\"></nord-avatar> <nord-avatar src=\"https://nordhealth.design/img/avatar.jpg\" name=\"Laura Williams\" size=\"xxxl\"></nord-avatar> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "PatientsAndClients",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>strong { font-weight: var(--n-font-weight-heading); margin-inline-end: var(--n-space-s); } ul { padding: var(--n-space-m); padding-inline-start: var(--n-space-l); } nord-stack { margin-block-end: var(--n-space-xxl); }</style> <nord-stack> <h3 class=\"n-typeset\">Patient</h3> <nord-divider></nord-divider> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Default\" icon=\"generic-pet-paw\" size=\"l\"></nord-avatar> <p><strong>Default (animal) / Uncategorized / Other</strong></p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Amphibia\" icon=\"generic-amphibia\" size=\"l\"></nord-avatar> <p><strong>Amphibia</strong> frog, toad</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Arachnida\" icon=\"generic-arachnida\" size=\"l\"></nord-avatar> <p><strong>Arachnida</strong> spider, tarantula, scorpion, other insects</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Arachnida\" icon=\"generic-birds\" size=\"l\"></nord-avatar> <p><strong>Bird</strong> parakeets, lovebirds, canaries, parrots</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Canine\" icon=\"generic-canine\" size=\"l\"></nord-avatar> <p><strong>Canine</strong> dog, fox, wolf, jackal, coyote</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Caprinae\" icon=\"generic-sheep\" size=\"l\"></nord-avatar> <p><strong>Caprinae</strong> sheep, goat, ram, gazelle</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Cattle\" icon=\"generic-cattle\" size=\"l\"></nord-avatar> <p><strong>Cattle</strong> cow, ox, buffalo, bison, bovinae</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Equidae\" icon=\"generic-equidae\" size=\"l\"></nord-avatar> <p><strong>Equidae</strong> horse, donky, mule, zebra</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Feline\" icon=\"generic-feline\" size=\"l\"></nord-avatar> <p><strong>Feline</strong> cat, lynx, leopard, ocelot</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Fish\" icon=\"generic-fish\" size=\"l\"></nord-avatar> <p><strong>Fish</strong> goldfish, neon tetra, betta fish, clownfish</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Leporidae\" icon=\"generic-leporidae\" size=\"l\"></nord-avatar> <p><strong>Leporidae</strong> rabbit, hare</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Reptilia\" icon=\"generic-reptilia\" size=\"l\"></nord-avatar> <p><strong>Reptilia</strong> snake, reptile, turtle, tortoise, lizard, dragons</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Rodents\" icon=\"generic-rodents\" size=\"l\"></nord-avatar> <p><strong>Rodents</strong> mouse, hamster, rat, guinae pig, squirrel</p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Suidae\" icon=\"generic-suidae\" size=\"l\"></nord-avatar> <p><strong>Suidae</strong> pig, boar, hog</p> </nord-stack> </nord-stack> <nord-stack> <h3 class=\"n-typeset\">Client (person)</h3> <nord-divider></nord-divider> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"John Dorian\" size=\"l\">JD</nord-avatar> <p><strong>John Dorian</strong></p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Sir John Michael Dorian Jr.\" size=\"l\">JD</nord-avatar> <p><strong>Sir John Michael Dorian Jr.</strong></p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"John\" size=\"l\">J</nord-avatar> <p><strong>John</strong></p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Mx. Dorian III\" size=\"l\">D</nord-avatar> <p><strong>Mx. Dorian III</strong></p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"J. D.\" size=\"l\">JD</nord-avatar> <p><strong>J. D.</strong></p> </nord-stack> <ul> <li>Use 2 letters: First+Last initial</li> <li>No middle name</li> <li>If no first or last name, use 1 letter instead of 2</li> <li>No titles, suffixes, etc.</li> </ul> </nord-stack> <nord-stack> <h3 class=\"n-typeset\">Herd or group of animals</h3> <nord-divider></nord-divider> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar variant=\"square\" name=\"Cattle\" icon=\"generic-cattle\" size=\"l\"></nord-avatar> <p><strong>Herd name</strong></p> </nord-stack> </nord-stack> <nord-stack> <h3 class=\"n-typeset\">Client (organization)</h3> <nord-divider></nord-divider> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar style=\"--n-avatar-color: var(--n-color-text-weaker)\" variant=\"square\" name=\"Acme Co.\" size=\"l\"> A </nord-avatar> <p><strong>Acme Co.</strong></p> </nord-stack> </nord-stack> <nord-stack> <h3 class=\"n-typeset\">Patient with a photo</h3> <nord-divider></nord-divider> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Scooby\" icon=\"generic-canine\" size=\"l\"></nord-avatar> <p><strong>Scooby</strong></p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar src=\"https://nordhealth.design/img/avatar-animal.jpg\" name=\"Scooby\" icon=\"generic-canine\" size=\"l\"> </nord-avatar> <p><strong>Scooby</strong></p> </nord-stack> </nord-stack> <nord-stack> <h3 class=\"n-typeset\">When to use circle / square</h3> <nord-divider></nord-divider> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar style=\"--n-avatar-color: var(--n-color-surface); --n-avatar-box-shadow: 0 0 0 1px var(--n-color-text-weaker)\" name=\"Circle\" size=\"l\" ></nord-avatar> <p><strong>Use circle for individuals or single animal</strong></p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar style=\"--n-avatar-color: var(--n-color-surface); --n-avatar-box-shadow: 0 0 0 1px var(--n-color-text-weaker)\" variant=\"square\" name=\"square\" size=\"l\" > </nord-avatar> <p><strong>Use square for organizations or group of animals</strong></p> </nord-stack> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Square",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Laura Williams\" size=\"s\" variant=\"square\">L</nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"m\" variant=\"square\">LW</nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"l\" variant=\"square\">LW</nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"xl\" variant=\"square\">LW</nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"xxl\" variant=\"square\">LW</nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"xxxl\" variant=\"square\">LW</nord-avatar> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Users",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>strong { font-weight: var(--n-font-weight-heading); margin-inline-end: var(--n-space-s); } ul { padding: var(--n-space-m); padding-inline-start: var(--n-space-l); } nord-stack { margin-block-end: var(--n-space-xxl); } p { max-inline-size: 500px; }</style> <nord-stack> <h3 class=\"n-typeset\">Users: Staff</h3> <nord-divider></nord-divider> <nord-stack align-items=\"center\" direction=\"horizontal\"> <nord-avatar style=\"--n-avatar-color: var(--n-color-accent)\" name=\"Anne Williams\" size=\"l\">AW</nord-avatar> <p><strong>Anne Williams</strong></p> </nord-stack> <nord-stack align-items=\"center\" direction=\"horizontal\"> <nord-avatar src=\"https://nordhealth.design/img/avatar.jpg\" name=\"Sir John Michael Dorian Jr.\" size=\"l\" ></nord-avatar> <p><strong>Anne Williams</strong></p> </nord-stack> <ul> <li>If no photo is uploaded: use initials</li> <li>If photo is uploaded: use photo</li> </ul> </nord-stack> <nord-stack> <h3 class=\"n-typeset\">Users: Clinic</h3> <nord-divider></nord-divider> <nord-stack align-items=\"center\" direction=\"horizontal\"> <nord-avatar variant=\"square\" name=\"Acme Clinic\" size=\"l\">A</nord-avatar> <p><strong>Acme Clinic</strong></p> </nord-stack> </nord-stack> <nord-stack> <h3 class=\"n-typeset\">Blank</h3> <nord-divider></nord-divider> <nord-avatar size=\"l\"></nord-avatar> <p> When creating a new user, since there are no photos or names attached to the new empty profile, there will be a blank (silhouette) as placeholder until a name is entered or a photo is uploaded. </p> <nord-avatar style=\"--n-avatar-color: var(--n-color-border); --n-avatar-box-shadow: none\" variant=\"square\" name=\"square\" size=\"l\" > </nord-avatar> <p> Similarly, if there are no names for the organization yet (during the creation process) use a blank version of the avatar. </p> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithIcon",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Norfryd\" icon=\"generic-pet-paw\" size=\"s\"></nord-avatar> <nord-avatar name=\"Norfryd\" icon=\"generic-pet-paw\" size=\"m\"></nord-avatar> <nord-avatar name=\"Norfryd\" icon=\"generic-pet-paw\" size=\"l\"></nord-avatar> <nord-avatar name=\"Norfryd\" icon=\"generic-pet-paw\" size=\"xl\"></nord-avatar> <nord-avatar name=\"Norfryd\" icon=\"generic-pet-paw\" size=\"xxl\"></nord-avatar> <nord-avatar name=\"Norfryd\" icon=\"generic-pet-paw\" size=\"xxxl\"></nord-avatar> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithInitials",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" direction=\"horizontal\" wrap> <nord-avatar name=\"Laura Williams\" size=\"s\">L</nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"m\">LW</nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"l\">LW</nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"xl\">LW</nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"xxl\">LW</nord-avatar> <nord-avatar name=\"Laura Williams\" size=\"xxxl\">LW</nord-avatar> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithTooltip",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-avatar aria-describedby=\"tooltip\" name=\"Laura Williams\" size=\"l\"></nord-avatar> <nord-tooltip id=\"tooltip\" position=\"inline-end\">Laura Williams (online)</nord-tooltip> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/avatar/Avatar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/avatar/Avatar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/avatar/Avatar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomImage",
          "declaration": {
            "name": "CustomImage",
            "module": "src/avatar/Avatar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PatientsAndClients",
          "declaration": {
            "name": "PatientsAndClients",
            "module": "src/avatar/Avatar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Square",
          "declaration": {
            "name": "Square",
            "module": "src/avatar/Avatar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Users",
          "declaration": {
            "name": "Users",
            "module": "src/avatar/Avatar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithIcon",
          "declaration": {
            "name": "WithIcon",
            "module": "src/avatar/Avatar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithInitials",
          "declaration": {
            "name": "WithInitials",
            "module": "src/avatar/Avatar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithTooltip",
          "declaration": {
            "name": "WithTooltip",
            "module": "src/avatar/Avatar.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/avatar/Avatar.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Avatar is used for showing a thumbnail representation of a single user or entity.\nDefault avatar illustration is displayed when no src is specified.",
          "name": "Avatar",
          "cssProperties": [
            {
              "description": "Controls the color of the avatar fallback, using [color tokens](/tokens/#color).",
              "name": "--n-avatar-color",
              "default": "var(--n-color-status-highlight)"
            },
            {
              "description": "Controls the size of the avatar, using [icon sizing tokens](/tokens/#size).",
              "name": "--n-avatar-size",
              "default": "var(--n-size-icon-l)"
            },
            {
              "description": "Controls the box shadow for the avatar.",
              "name": "--n-avatar-box-shadow",
              "default": "none"
            },
            {
              "description": "Controls the color of the avatar’s text and icon, using [color tokens](/tokens/#color).",
              "name": "--n-avatar-text-color",
              "default": "var(--n-color-text-on-accent)"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "state",
              "type": {
                "text": "States<typeof transition>"
              },
              "privacy": "private",
              "default": "'initial'"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l' | 'xl' | 'xxl' | 'xxxl'"
              },
              "default": "'m'",
              "description": "The size of the avatar.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "src",
              "type": {
                "text": "string | undefined"
              },
              "description": "The URL of the avatar image uploaded by the user.",
              "attribute": "src",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The name of the person or entity.",
              "attribute": "name",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "icon",
              "type": {
                "text": "string | undefined"
              },
              "description": "The fallback icon.",
              "attribute": "icon",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "'default' | 'square'"
              },
              "default": "'default'",
              "description": "The style variant of the avatar.",
              "attribute": "variant",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleSrcChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "renderImage",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "renderFallback",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleLoad",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleError",
              "privacy": "private"
            }
          ],
          "attributes": [
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l' | 'xl' | 'xxl' | 'xxxl'"
              },
              "default": "'m'",
              "description": "The size of the avatar.",
              "fieldName": "size"
            },
            {
              "name": "src",
              "type": {
                "text": "string | undefined"
              },
              "description": "The URL of the avatar image uploaded by the user.",
              "fieldName": "src"
            },
            {
              "name": "name",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The name of the person or entity.",
              "fieldName": "name"
            },
            {
              "name": "icon",
              "type": {
                "text": "string | undefined"
              },
              "description": "The fallback icon.",
              "fieldName": "icon"
            },
            {
              "name": "variant",
              "type": {
                "text": "'default' | 'square'"
              },
              "default": "'default'",
              "description": "The style variant of the avatar.",
              "fieldName": "variant"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "image",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use the circle avatar to represent a single user or an animal.\n- Use the square avatar for organizations or group of animals.\n- Always add the name of the user, animal, organization, or group of animals using the `name` property.\n- For the best results, use square images or images cropped into a square.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use the circle avatar to represent organizations or group of animals.\n- Don’t use the square avatar to represent a single user or an animal.\n- Don’t use an avatar when an icon is more suitable, for example when denoting groups or \"things\".\n- Try to avoid using landscape or portrait images as avatars. Let users crop their images before or after uploading if possible.\n\n</div>\n",
          "examples": [],
          "dependencies": [
            "visually-hidden",
            "icon"
          ],
          "tagName": "nord-avatar",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Avatar",
            "module": "src/avatar/Avatar.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-avatar",
          "declaration": {
            "name": "Avatar",
            "module": "src/avatar/Avatar.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/banner/Banner.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Banner', component: 'nord-banner', tags: ['autodocs'], argTypes: { variant: { control: 'select', options: ['info', 'danger', 'success', 'warning'], }, content: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { content: 'This is a banner message.', variant: 'info', }, render: args => html` <nord-banner variant=${args.variant}>${args.content}</nord-banner> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-banner variant=\"info\"> We’ve updated your plan, make sure you know how these changes affect it. <a href=\"#\">Learn more</a>. </nord-banner> <nord-banner variant=\"danger\"> We’re experiencing an incident. Please see our <a href=\"#\">status page</a> for more details. </nord-banner> <nord-banner variant=\"warning\"> Payment details missing. To stay on your current plan, <a href=\"#\">add payment details</a>. </nord-banner> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "InfoBanner",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-banner> We’ve updated your plan, make sure you know how these changes affect it. <a href=\"#\">Learn more</a>. </nord-banner> `, }"
        },
        {
          "kind": "variable",
          "name": "InsideCard",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-card> <h2 slot=\"header\">Paid invoices</h2> <nord-stack> <nord-banner variant=\"info\"> We’ve updated your plan, make sure you know how these changes affect it. <a href=\"#\">Learn more</a>. </nord-banner> <nord-banner variant=\"danger\"> We’re experiencing an incident. Please see our <a href=\"#\">status page</a> for more details. </nord-banner> <nord-banner variant=\"warning\"> Payment details missing. To stay on your current plan, <a href=\"#\">add payment details</a>. </nord-banner> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-stack> </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "NextToButton",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"start\"> <nord-button href=\"#\" variant=\"primary\" size=\"l\">Submit ticket</nord-button> <nord-banner>You need to be logged in with a Nordhealth account to submit tickets.</nord-banner> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithForm",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack style=\"max-inline-size: 340px; margin: var(--n-space-xl) auto\"> <nord-banner shadow variant=\"warning\">You’ve been signed out. Please sign in to continue.</nord-banner> <nord-card padding=\"l\"> <h1 slot=\"header\">Sign in to Nord</h1> <form action=\"#\"> <nord-stack> <nord-input label=\"Username\" expand required hide-required name=\"username\" type=\"email\" placeholder=\"user@example.com\" ></nord-input> <nord-input label=\"Password\" expand required hide-required name=\"password\" type=\"password\" placeholder=\"••••••••\" > </nord-input> <nord-button type=\"submit\" expand variant=\"primary\">Sign in</nord-button> </nord-stack> </form> </nord-card> <nord-card class=\"n-align-center\"> New to Nord? <a href=\"#\">Create an account</a>. </nord-card> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/banner/Banner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/banner/Banner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/banner/Banner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InfoBanner",
          "declaration": {
            "name": "InfoBanner",
            "module": "src/banner/Banner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InsideCard",
          "declaration": {
            "name": "InsideCard",
            "module": "src/banner/Banner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "NextToButton",
          "declaration": {
            "name": "NextToButton",
            "module": "src/banner/Banner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithForm",
          "declaration": {
            "name": "WithForm",
            "module": "src/banner/Banner.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/banner/Banner.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Banner informs users about important changes or conditions in the\ninterface. Use this component if you need to communicate to users\nin a prominent way.",
          "name": "Banner",
          "cssProperties": [
            {
              "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
              "name": "--n-banner-border-radius",
              "default": "var(--n-border-radius)"
            },
            {
              "description": "Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).",
              "name": "--n-banner-box-shadow",
              "default": "var(--n-box-shadow-card)"
            }
          ],
          "slots": [
            {
              "description": "default slot",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "'info' | 'danger' | 'success' | 'warning'"
              },
              "default": "'info'",
              "description": "The style variant of the banner.",
              "attribute": "variant",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "variant",
              "type": {
                "text": "'info' | 'danger' | 'success' | 'warning'"
              },
              "default": "'info'",
              "description": "The style variant of the banner.",
              "fieldName": "variant"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "feedback",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use this component if you need to communicate in a prominent way.\n- Place banner at the top of the section it applies to.\n- Use for highlighting errors and success statuses.\n- Put banner close to the context it’s referring to.\n- Move focus to the banner if it’s relevant to the current workflow.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Move focus to banner if it appears on page load.\n- Use for highlighting general content or as a banner.\n- Use to replace an error page.\n\n</div>\n\n---\n\n## Content guidelines\n\nBanner content should be clear, accurate and easy to understand:\n\n<div class=\"n-usage n-usage-do\">We’re experiencing an incident. Please see our status page for more details.</div>\n<div class=\"n-usage n-usage-dont\">There was an error.</div>\n\nWhen writing banner content, always write it in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">We’re experiencing an incident.</div>\n<div class=\"n-usage n-usage-dont\">We’re Experiencing An Incident.</div>\n\nAlways end in punctuation:\n\n<div class=\"n-usage n-usage-do\">We’re experiencing an incident.</div>\n<div class=\"n-usage n-usage-dont\">We’re experiencing an incident</div>\n",
          "examples": [],
          "dependencies": [
            "icon"
          ],
          "tagName": "nord-banner",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Banner",
            "module": "src/banner/Banner.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-banner",
          "declaration": {
            "name": "Banner",
            "module": "src/banner/Banner.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/badge/Badge.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Badge', component: 'nord-badge', tags: ['autodocs'], argTypes: { variant: { control: 'select', options: ['neutral', 'warning', 'success', 'danger', 'highlight', 'info'], }, strong: { control: 'boolean' }, content: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { content: 'Badge', variant: 'neutral', strong: false, }, render: args => html` <nord-badge variant=${args.variant} ?strong=${args.strong} >${args.content}</nord-badge > `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\"> <nord-badge>Neutral</nord-badge> <nord-badge variant=\"danger\">Danger</nord-badge> <nord-badge variant=\"warning\">Warning</nord-badge> <nord-badge variant=\"success\">Success</nord-badge> <nord-badge variant=\"info\">Info</nord-badge> <nord-badge variant=\"highlight\">Highlight</nord-badge> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Progress",
          "type": {
            "text": "Story"
          },
          "default": "{ args: { variant: 'warning', }, render: () => html` <nord-stack gap=\"s\"> <nord-badge variant=\"success\"> <nord-icon slot=\"icon\" name=\"interface-complete-small\"></nord-icon> Complete </nord-badge> <nord-badge variant=\"info\"> <nord-icon slot=\"icon\" name=\"interface-partially-complete-small\" ></nord-icon> Partially complete </nord-badge> <nord-badge variant=\"neutral\"> <nord-icon slot=\"icon\" name=\"interface-incomplete-small\"></nord-icon> Incomplete </nord-badge> <nord-badge variant=\"warning\"> <nord-icon slot=\"icon\" name=\"interface-cancelled-small\"></nord-icon> Cancelled </nord-badge> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Scale",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style> nord-badge { margin-inline-start: var(--n-space-m); } </style> <div class=\"n-typeset n-grid-2 n-gap-s n-font-size-s\" style=\"inline-size: fit-content\" > <span>Strongly positive</span> <nord-badge variant=\"success\">Success</nord-badge> <span>Weakly positive</span> <nord-badge variant=\"info\">Info</nord-badge> <span>Neutral</span> <nord-badge variant=\"highlight\">Highlight</nord-badge> <span>Neutral</span> <nord-badge variant=\"neutral\">Neutral</nord-badge> <span>Weakly negative</span> <nord-badge variant=\"warning\">Warning</nord-badge> <span>Strongly negative</span> <nord-badge variant=\"danger\">Danger</nord-badge> </div> `, }"
        },
        {
          "kind": "variable",
          "name": "Strong",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack class=\"n-margin-be-m\" gap=\"s\"> <nord-badge variant=\"neutral\" strong>Neutral</nord-badge> <nord-badge variant=\"danger\" strong>Danger</nord-badge> <nord-badge variant=\"warning\" strong>Warning</nord-badge> <nord-badge variant=\"success\" strong>Success</nord-badge> <nord-badge variant=\"info\" strong>Info</nord-badge> <nord-badge variant=\"highlight\" strong>Highlight</nord-badge> </nord-stack> <nord-stack gap=\"s\"> <nord-badge variant=\"neutral\" strong> <nord-icon slot=\"icon\" name=\"interface-checked-small\"></nord-icon> Neutral </nord-badge> <nord-badge variant=\"danger\" strong> <nord-icon slot=\"icon\" name=\"interface-cancelled-small\"></nord-icon> Danger </nord-badge> <nord-badge variant=\"warning\" strong> <nord-icon slot=\"icon\" name=\"interface-warning-small\"></nord-icon> Warning </nord-badge> <nord-badge variant=\"success\" strong> <nord-icon slot=\"icon\" name=\"interface-checked-small\"></nord-icon> Success </nord-badge> <nord-badge variant=\"info\" strong> <nord-icon slot=\"icon\" name=\"interface-checked-small\"></nord-icon> Info </nord-badge> <nord-badge variant=\"highlight\" strong> <nord-icon slot=\"icon\" name=\"interface-checked-small\"></nord-icon> Highlight </nord-badge> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithIcon",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\"> <nord-badge variant=\"neutral\"> <nord-icon slot=\"icon\" name=\"interface-checked-small\"></nord-icon> Neutral </nord-badge> <nord-badge variant=\"danger\"> <nord-icon slot=\"icon\" name=\"interface-cancelled-small\"></nord-icon> Danger </nord-badge> <nord-badge variant=\"warning\"> <nord-icon slot=\"icon\" name=\"interface-warning-small\"></nord-icon> Warning </nord-badge> <nord-badge variant=\"success\"> <nord-icon slot=\"icon\" name=\"interface-checked-small\"></nord-icon> Success </nord-badge> <nord-badge variant=\"info\"> <nord-icon slot=\"icon\" name=\"interface-checked-small\"></nord-icon> Info </nord-badge> <nord-badge variant=\"highlight\"> <nord-icon slot=\"icon\" name=\"interface-checked-small\"></nord-icon> Highlight </nord-badge> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithTable",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-table> <table> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Status</th> <th>Description</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> <th class=\"n-table-align-right\">Actions</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">19.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">17.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">12.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">10.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">9.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">3.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">1.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">30.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">26.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td><nord-badge variant=\"danger\">Alert</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">24.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">23.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">22.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">21.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">18.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> </tbody> </table> </nord-table> `, }"
        },
        {
          "kind": "variable",
          "name": "WithTitle",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <h1 class=\"n-typescale-xxl\"> Web Components<nord-badge class=\"n-margin-is-s\" variant=\"highlight\" >2.0.0</nord-badge > </h1> `, }"
        },
        {
          "kind": "variable",
          "name": "WithVerticallyAlignedText",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <div class=\"n-stack-horizontal n-gap-s n-items-center n-reset\"> <span class=\"n-typescale-xl\">342</span> <nord-badge variant=\"success\"> <nord-icon slot=\"icon\" name=\"arrow-up-long\" label=\"Increased\" ></nord-icon> 1.0 % </nord-badge> <span class=\"n-color-text-weak n-font-size-s\" >87% Returning clients | 338 from previous period</span > </div> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/badge/Badge.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/badge/Badge.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/badge/Badge.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Progress",
          "declaration": {
            "name": "Progress",
            "module": "src/badge/Badge.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Scale",
          "declaration": {
            "name": "Scale",
            "module": "src/badge/Badge.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Strong",
          "declaration": {
            "name": "Strong",
            "module": "src/badge/Badge.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithIcon",
          "declaration": {
            "name": "WithIcon",
            "module": "src/badge/Badge.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithTable",
          "declaration": {
            "name": "WithTable",
            "module": "src/badge/Badge.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithTitle",
          "declaration": {
            "name": "WithTitle",
            "module": "src/badge/Badge.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithVerticallyAlignedText",
          "declaration": {
            "name": "WithVerticallyAlignedText",
            "module": "src/badge/Badge.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/badge/Badge.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Badges are used to inform users of the status of an object\nor of an action that’s been taken. Commonly used in tabular\ndata to indicate status.",
          "name": "Badge",
          "slots": [
            {
              "description": "The badge content.",
              "name": ""
            },
            {
              "description": "Used to place an icon at the start of badge.",
              "name": "icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "'warning' | 'success' | 'danger' | 'highlight' | 'info' | 'neutral' | 'progress' | undefined"
              },
              "description": "The type of badge.\nDetermines the background color of the badge.",
              "deprecated": "Use `variant` instead. If you previously used `\"progress\"`, use `\"info\"` instead.",
              "default": "\"neutral\"",
              "attribute": "type",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "'warning' | 'success' | 'danger' | 'highlight' | 'neutral' | 'info' | undefined"
              },
              "description": "The style variant of the badge.\nDetermines the background color of the badge.",
              "default": "\"neutral\"",
              "attribute": "variant",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "strong",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Strong badges are a secondary style for badges.\nThey provide more visual prominence and emphasize them.",
              "attribute": "strong",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "type",
              "type": {
                "text": "'warning' | 'success' | 'danger' | 'highlight' | 'info' | 'neutral' | 'progress' | undefined"
              },
              "description": "The type of badge.\nDetermines the background color of the badge.",
              "deprecated": "Use `variant` instead. If you previously used `\"progress\"`, use `\"info\"` instead.",
              "default": "\"neutral\"",
              "fieldName": "type"
            },
            {
              "name": "variant",
              "type": {
                "text": "'warning' | 'success' | 'danger' | 'highlight' | 'neutral' | 'info' | undefined"
              },
              "description": "The style variant of the badge.\nDetermines the background color of the badge.",
              "default": "\"neutral\"",
              "fieldName": "variant"
            },
            {
              "name": "strong",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Strong badges are a secondary style for badges.\nThey provide more visual prominence and emphasize them.",
              "fieldName": "strong"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "text",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use established variants and color patterns so that users can clearly identify the importance level.\n- Use to show a status update on a piece of information or action.\n- Use to mark something as a “draft” or “new”.\n- Use when you want to highlight something that has been added recently.\n- Always position badge so that it’s easy to understand what object it’s related to.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t make badges clickable. Instead use button component’s small variant.\n- Don’t use alternatives to existing badge variants.\n- Don't use badges for labeling, categorizing, or organizing objects. Use the [tag component](/components/tag/) instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nBadge labels should use a single word to describe the status of an object. Only use two words if you need to describe a complex state:\n\n<div class=\"n-usage n-usage-do\">Complete</div>\n<div class=\"n-usage n-usage-dont\">Action completed</div>\n\nWhen writing badge labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Partially refunded</div>\n<div class=\"n-usage n-usage-dont\">Partially Refunded</div>\n\nAvoid unnecessary words and articles in badge labels, such as “is”, “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Pending</div>\n<div class=\"n-usage n-usage-dont\">Item is pending</div>\n\nAlways describe the status in the past tense:\n\n<div class=\"n-usage n-usage-do\">Refunded</div>\n<div class=\"n-usage n-usage-dont\">Refund</div>\n\n---\n\n## Variants\n\nThis section describes the different component variants, their purpose, and when to use each variant.\n\n| Name        | Purpose                                                                                                                                 |\n| ----------- | --------------------------------------------------------------------------------------------------------------------------------------- |\n| `neutral`   | The default style variant.                                                                                                              |\n| `info`      | Used to convey general information that isn’t critical.                                                                                 |\n| `success`   | Used to convey success states. For example, you might want to show a badge that tells the user a payment was successful.                |\n| `highlight` | Used to highlight specific items in the interface, like notifications.                                                                  |\n| `danger`    | Used to communicate problems that have to be resolved so that user can continue forward. Should always be used for highlighting errors. |\n| `warning`   | Used to display information that needs a user’s attention attention and may require further steps.                                      |\n| `progress`  | Used to convey something that’s in progress.                                                                                            |\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-badge",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Badge",
            "module": "src/badge/Badge.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-badge",
          "declaration": {
            "name": "Badge",
            "module": "src/badge/Badge.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/button/Button.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Button', component: 'nord-button', tags: ['autodocs'], argTypes: { variant: { control: 'select', options: ['default', 'primary', 'dashed', 'plain', 'danger'], }, size: { control: 'select', options: ['s', 'm', 'l'], }, href: { control: 'text' }, download: { control: 'boolean' }, target: { control: 'select', options: ['_self', '_blank', '_parent', '_top'], }, expand: { control: 'boolean' }, square: { control: 'boolean' }, loading: { control: 'boolean' }, hideDropdownIcon: { control: 'boolean' }, disabled: { control: 'boolean' }, name: { control: 'text' }, value: { control: 'text' }, content: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { content: 'Button', variant: 'default', size: 'm', download: false, target: '_self', expand: false, square: false, loading: false, hideDropdownIcon: false, disabled: false, }, render: args => html` <nord-button variant=${args.variant} size=${args.size} href=${args.href || nothing} ?download=${args.download} target=${args.target} ?expand=${args.expand} ?square=${args.square} ?loading=${args.loading} ?hide-dropdown-icon=${args.hideDropdownIcon} ?disabled=${args.disabled} name=${args.name || nothing} value=${args.value || nothing}>${args.content}</nord-button> `, }"
        },
        {
          "kind": "variable",
          "name": "ButtonAsLink",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-button href=\"#\">Default</nord-button> <nord-button href=\"#\" variant=\"primary\">Primary</nord-button> <nord-button href=\"#\" variant=\"danger\">Danger</nord-button> <nord-button href=\"#\" variant=\"dashed\"> <nord-icon slot=\"start\" name=\"interface-filter\"></nord-icon> Filter </nord-button> <nord-button href=\"#\" square> <nord-icon name=\"interface-menu-small\" label=\"Options\"></nord-icon> </nord-button> <nord-button href=\"#\" variant=\"plain\">Plain</nord-button> <nord-button href=\"#\" disabled>Disabled</nord-button> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "ButtonWithDropdownButHideIcon",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\"> <nord-dropdown size=\"s\"> <nord-button variant=\"primary\" slot=\"toggle\" hide-dropdown-icon> Create new </nord-button> <nord-dropdown-item>Patient record</nord-dropdown-item> <nord-dropdown-item>User record</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "ButtonWithDropdown",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\"> <nord-dropdown size=\"s\"> <nord-button variant=\"primary\" slot=\"toggle\"> Create new </nord-button> <nord-dropdown-item>Patient record</nord-dropdown-item> <nord-dropdown-item>User record</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomBackground",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-button style=\"--n-button-background-color: var(--n-color-status-success)\" variant=\"primary\"> Primary </nord-button> <nord-button style=\"--n-button-background-color: var(--n-color-status-success-weak)\">Default</nord-button> <nord-button style=\"--n-button-background-color: var(--n-color-status-success-weak)\" variant=\"plain\"> Plain </nord-button> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-button disabled>Disabled</nord-button>`, }"
        },
        {
          "kind": "variable",
          "name": "Expanded",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"vertical\" gap=\"s\"> <nord-button expand>Default</nord-button> <nord-button variant=\"primary\" expand>Primary</nord-button> <nord-button variant=\"danger\" expand>Danger</nord-button> <nord-button variant=\"dashed\" expand>Filter</nord-button> <nord-button variant=\"plain\" expand>Plain</nord-button> <nord-button disabled expand>Disabled</nord-button> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "IconOnly",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"vertical\" gap=\"s\"> <nord-button square size=\"s\"> <nord-icon name=\"interface-copy\" label=\"Copy\"></nord-icon> </nord-button> <nord-button square> <nord-icon name=\"interface-copy\" label=\"Copy\"></nord-icon> </nord-button> <nord-button square size=\"l\"> <nord-icon name=\"interface-copy\" label=\"Copy\"></nord-icon> </nord-button> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "LargeButtons",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-button size=\"l\">Default</nord-button> <nord-button size=\"l\" variant=\"primary\">Primary</nord-button> <nord-button size=\"l\" variant=\"danger\">Danger</nord-button> <nord-button variant=\"dashed\" size=\"l\"> <nord-icon slot=\"start\" name=\"interface-filter\"></nord-icon> Filter </nord-button> <nord-button size=\"l\" square> <nord-icon name=\"interface-menu-small\" label=\"Options\"></nord-icon> </nord-button> <nord-button size=\"l\" variant=\"plain\">Plain</nord-button> <nord-button size=\"l\" disabled>Disabled</nord-button> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "LoadingInteractivity",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\">Export <nord-icon slot=\"end\" name=\"interface-download\"></nord-icon></nord-button> <nord-toast-group></nord-toast-group>` const group = container.querySelector('nord-toast-group') const button = container.querySelector('nord-button') group.addEventListener('dismiss', e => e.target.remove()) button.addEventListener('click', () => { if (button.loading) { return } button.loading = true group.addToast('Exporting data…', { autoDismiss: 3000 }) // Timeout exists for demo purposes to mimic server response time setTimeout(() => { button.loading = false group.addToast('Data exported', { autoDismiss: 3000 }) }, 2000) }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Loading",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-button loading>Default</nord-button> <nord-button loading variant=\"primary\">Primary</nord-button> <nord-button loading variant=\"danger\">Danger</nord-button> <nord-button loading variant=\"dashed\"> <nord-icon slot=\"start\" name=\"interface-filter\"></nord-icon> Filter </nord-button> <nord-button loading> <nord-icon name=\"interface-menu-small\" label=\"Options\"></nord-icon> </nord-button> <nord-button loading variant=\"plain\">Plain</nord-button> <nord-button loading disabled>Disabled</nord-button> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Slots",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" gap=\"s\"> <nord-button variant=\"primary\"> <nord-icon slot=\"start\" name=\"interface-edit\"></nord-icon> Start slot </nord-button> <nord-button variant=\"primary\"> End slot <nord-icon slot=\"end\" name=\"interface-edit\"></nord-icon> </nord-button> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "SmallButtons",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-button size=\"s\">Default</nord-button> <nord-button size=\"s\" variant=\"primary\">Primary</nord-button> <nord-button size=\"s\" variant=\"danger\">Danger</nord-button> <nord-button variant=\"dashed\" size=\"s\"> <nord-icon slot=\"start\" name=\"interface-filter\"></nord-icon> Filter </nord-button> <nord-button size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Options\"></nord-icon> </nord-button> <nord-button size=\"s\" variant=\"plain\">Small</nord-button> <nord-button size=\"s\" disabled>Disabled</nord-button> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithIcon",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-button href=\"#\" size=\"l\" variant=\"primary\"> <nord-icon slot=\"start\" name=\"generic-github\"></nord-icon> Contribute on GitHub </nord-button> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ButtonAsLink",
          "declaration": {
            "name": "ButtonAsLink",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ButtonWithDropdownButHideIcon",
          "declaration": {
            "name": "ButtonWithDropdownButHideIcon",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ButtonWithDropdown",
          "declaration": {
            "name": "ButtonWithDropdown",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomBackground",
          "declaration": {
            "name": "CustomBackground",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Expanded",
          "declaration": {
            "name": "Expanded",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "IconOnly",
          "declaration": {
            "name": "IconOnly",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "LargeButtons",
          "declaration": {
            "name": "LargeButtons",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "LoadingInteractivity",
          "declaration": {
            "name": "LoadingInteractivity",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Loading",
          "declaration": {
            "name": "Loading",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Slots",
          "declaration": {
            "name": "Slots",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "SmallButtons",
          "declaration": {
            "name": "SmallButtons",
            "module": "src/button/Button.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithIcon",
          "declaration": {
            "name": "WithIcon",
            "module": "src/button/Button.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/button/Button.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Buttons are used for interface actions. Primary style should be\nused only once per section for main call-to-action, while other\nstyles can appear more frequently.",
          "name": "Button",
          "cssProperties": [
            {
              "description": "Controls the rounded corners of the button, using [border radius tokens](/tokens/#border-radius).",
              "name": "--n-button-border-radius",
              "default": "var(--n-border-radius-s)"
            },
            {
              "description": "Controls the spacing between items within the button, using our [spacing tokens](/tokens/#space).",
              "name": "--n-button-gap",
              "default": "var(--n-space-s)"
            },
            {
              "description": "Controls the overlayed gradient background on the button.",
              "name": "--n-button-gradient",
              "default": "linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.013) 100%))"
            },
            {
              "description": "Controls the background color of the button, using our [color tokens](/tokens/#color).",
              "name": "--n-button-background-color",
              "default": "var(--n-color-button)"
            },
            {
              "description": "Controls the border color of the button, using our [color tokens](/tokens/#color).",
              "name": "--n-button-border-color",
              "default": "var(--n-color-border-strong)"
            },
            {
              "description": "Controls the text alignment for the text in the button.",
              "name": "--n-button-text-align",
              "default": "center"
            },
            {
              "description": "Controls the surrounding shadow, using our [box shadow tokens](/tokens/#box-shadow).",
              "name": "--n-button-box-shadow",
              "default": "var(--n-box-shadow)"
            },
            {
              "description": "Controls the color of the text within the button, using our [color tokens](/tokens/#color).",
              "name": "--n-button-color",
              "default": "var(--n-color-text)"
            },
            {
              "description": "Controls the inline, or left and right, padding of the button.",
              "name": "--n-button-padding-inline",
              "default": "calc(var(--n-space-m) / 1.2)"
            },
            {
              "description": "Controls the size of the text within the button, using our [font tokens](/tokens/#font).",
              "name": "--n-button-font-size",
              "default": "var(--n-font-size-m)"
            },
            {
              "description": "Controls the weight of the text within the button, using our [font tokens](/tokens/#font).",
              "name": "--n-button-font-weight",
              "default": "var(--n-font-weight)"
            },
            {
              "description": "Controls the minimum block size, or height, of the button using our [spacing tokens](/tokens/#space).",
              "name": "--n-button-min-block-size",
              "default": "var(--n-space-xl)"
            },
            {
              "description": "Controls the color of toggle icon that gets rendered when the button is used as a [Dropdown](/components/dropdown/) toggle.",
              "name": "--n-button-toggle-icon-color",
              "default": "var(--n-color-icon)"
            },
            {
              "description": "Controls the text selection behavior of the button text.",
              "name": "--n-button-user-select",
              "default": "none"
            }
          ],
          "slots": [
            {
              "description": "The button content",
              "name": ""
            },
            {
              "description": "Used to place content at the start of button text. Typically used for icons.",
              "name": "start"
            },
            {
              "description": "Used to place content at the end of button text. Typically used for icons.",
              "name": "end"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "defaultSlot",
              "privacy": "private",
              "default": "new SlotController(this)"
            },
            {
              "kind": "field",
              "name": "buttonRef",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "events",
              "privacy": "private",
              "default": "new EventController(this)"
            },
            {
              "kind": "field",
              "name": "lightDom",
              "privacy": "private",
              "default": "new LightDomController(this, { render: () => this.renderLightDom(), })"
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "'default' | 'primary' | 'dashed' | 'plain' | 'danger'"
              },
              "default": "'default'",
              "description": "The style variant of the button.",
              "attribute": "variant",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "'button' | 'submit' | 'reset'"
              },
              "default": "'submit'",
              "description": "The type of the button.",
              "attribute": "type",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the button.\nThis affects font-size and padding.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "accessibleExpanded",
              "type": {
                "text": "'true' | 'false' | undefined"
              },
              "description": "This does not need to be documented,\nsince it is only for forwarding the aria-expanded attribute\nto the internal button element.",
              "privacy": "private",
              "attribute": "aria-expanded"
            },
            {
              "kind": "field",
              "name": "accessibleHasPopup",
              "type": {
                "text": "| 'false'\n    | 'true'\n    | 'menu'\n    | 'listbox'\n    | 'tree'\n    | 'grid'\n    | 'dialog' | undefined"
              },
              "description": "This does not need to be documented,\nsince it is only for forwarding the aria-haspopup attribute\nto the internal button element.",
              "privacy": "private",
              "attribute": "aria-haspopup"
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
              "attribute": "href",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "download",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
              "attribute": "download",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "'_self' | '_blank' | '_parent' | '_top'"
              },
              "default": "'_self'",
              "description": "When provided together with a href property, determines where\nto open the linked URL. The keywords have special meanings for\nwhere to load the URL: “_self” means the current browsing context,\n“_blank” usually a new tab but users can configure browsers this to\nopen a new window instead, “_parent” means the parent browsing\ncontext of the current one, but if no parent exists, behaves as\n_self, and finally “top” means the topmost browsing context.",
              "attribute": "target"
            },
            {
              "kind": "field",
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the button expands to fill the width of its container.",
              "attribute": "expand",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "square",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When provided, the button is rendered as a square button. Use this for icon only buttons.",
              "attribute": "square",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "loading",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the button is in loading state. Please note that the spinner\nis hidden from assistive technologies, so you need to make sure to announce\nthe loading state to e.g. screen reader users. We also recommend disabling\nall user interactions on the button itself while in loading state.",
              "attribute": "loading",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "hideDropdownIcon",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the `interface-dropdown-small` icon from Nordicons is hidden\nin the `end` slot when used as a dropdown toggle.",
              "attribute": "hide-dropdown-icon",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "renderLink",
              "privacy": "private",
              "parameters": [
                {
                  "name": "innards",
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ],
              "description": "We jump through some hoops here to ensure the link is treated correctly when \"disabled\".\nLinks cannot be disabled natively, so we need to rely on some aria magic to get the correct semantics.\nAlong with the advice in the article below, we also set tabindex to \"-1\", so it is taken out of tab order."
            },
            {
              "kind": "method",
              "name": "renderButton",
              "privacy": "private",
              "parameters": [
                {
                  "name": "innards",
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderLightDom",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleOuterClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleClick",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleProxyChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "description": "React/Vue etc may remove our proxy button when updating button text, since they are unaware of its existence.\nSo we listen for a slotchange event, and if the element is no longer connected to the DOM we add it back in."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "variant",
              "type": {
                "text": "'default' | 'primary' | 'dashed' | 'plain' | 'danger'"
              },
              "default": "'default'",
              "description": "The style variant of the button.",
              "fieldName": "variant"
            },
            {
              "name": "type",
              "type": {
                "text": "'button' | 'submit' | 'reset'"
              },
              "default": "'submit'",
              "description": "The type of the button.",
              "fieldName": "type"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the button.\nThis affects font-size and padding.",
              "fieldName": "size"
            },
            {
              "name": "aria-expanded",
              "type": {
                "text": "'true' | 'false' | undefined"
              },
              "description": "This does not need to be documented,\nsince it is only for forwarding the aria-expanded attribute\nto the internal button element.",
              "fieldName": "accessibleExpanded"
            },
            {
              "name": "aria-haspopup",
              "type": {
                "text": "| 'false'\n    | 'true'\n    | 'menu'\n    | 'listbox'\n    | 'tree'\n    | 'grid'\n    | 'dialog' | undefined"
              },
              "description": "This does not need to be documented,\nsince it is only for forwarding the aria-haspopup attribute\nto the internal button element.",
              "fieldName": "accessibleHasPopup"
            },
            {
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
              "fieldName": "href"
            },
            {
              "name": "download",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
              "fieldName": "download"
            },
            {
              "name": "target",
              "type": {
                "text": "'_self' | '_blank' | '_parent' | '_top'"
              },
              "default": "'_self'",
              "description": "When provided together with a href property, determines where\nto open the linked URL. The keywords have special meanings for\nwhere to load the URL: “_self” means the current browsing context,\n“_blank” usually a new tab but users can configure browsers this to\nopen a new window instead, “_parent” means the parent browsing\ncontext of the current one, but if no parent exists, behaves as\n_self, and finally “top” means the topmost browsing context.",
              "fieldName": "target"
            },
            {
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the button expands to fill the width of its container.",
              "fieldName": "expand"
            },
            {
              "name": "square",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When provided, the button is rendered as a square button. Use this for icon only buttons.",
              "fieldName": "square"
            },
            {
              "name": "loading",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the button is in loading state. Please note that the spinner\nis hidden from assistive technologies, so you need to make sure to announce\nthe loading state to e.g. screen reader users. We also recommend disabling\nall user interactions on the button itself while in loading state.",
              "fieldName": "loading"
            },
            {
              "name": "hide-dropdown-icon",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the `interface-dropdown-small` icon from Nordicons is hidden\nin the `end` slot when used as a dropdown toggle.",
              "fieldName": "hideDropdownIcon"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "action",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Only use one primary button per section, as a main call-to-action.\n- Use clear and accurate labels.\n- Use established button colors appropriately. For example, only use a danger button style for an action that’s difficult or impossible to undo.\n- Prioritize the most important actions. Too many buttons will cause confusion.\n- Be consistent with positioning of buttons in the user interface.\n- Use strong, actionable verbs in labels such as “Add”, “Close”, “Cancel”, or “Save”.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don't use a primary button in every row of a table.\n- Don’t use buttons to link to other pages. Use regular link or a plain style instead where necessary.\n- Don’t use buttons for navigation where the link appears within or following a sentence.\n- Don’t use labels such as “Read more”, “Click here” or “More”.\n\n</div>\n\n---\n\n## Content guidelines\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">View user settings</div>\n<div class=\"n-usage n-usage-dont\">Click here</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Add item</div>\n<div class=\"n-usage n-usage-dont\">Add an item</div>\n\n---\n\n## Variants\n\nThis section describes the different component variants, their purpose, and when to use each variant.\n\n| Name       | Purpose                                                                                                                                                                                                  |\n| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `default`  | Default style is the most common button variant. Only switch to another variant if you need to adjust the visual weight of the element.                                                                  |\n| `primary`  | Primary style is reserved for main call-to-actions. Should be used only once per content area or panel, e.g. for a “Save” action.                                                                        |\n| `dashed`   | Dashed style should be used for actions that trigger filtering.                                                                                                                                          |\n| `danger`   | Danger style should be used for actions that delete data or otherwise make it hard to undo the action.                                                                                                   |\n| `plain`    | Used for less important or less common actions. Can be also used for linking to other pages.                                                                                                             |\n| `disabled` | Used for actions that aren’t currently available or not available anymore. Also prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies. |\n\n---\n\n## Icon usage in button\n\nIllustrative icons should be always positioned in the `start` slot:\n\n<img src=\"/img/components/button/start-slot.png\" class=\"n-border n-border-radius n-brand-therapy\" style=\"max-inline-size:700px;\" loading=\"lazy\" height=\"475\" width=\"800\" alt=\"Button with icon in start slot\" />\n<img src=\"/img/components/button/start-slot-vet.png\" class=\"n-border n-border-radius n-brand-veterinary\" style=\"max-inline-size:700px;\" loading=\"lazy\" height=\"475\" width=\"800\" alt=\"Button with icon in start slot\" />\n\nWhen a button is used as a dropdown toggle, the `interface-dropdown-small` icon from [Nordicons](/nordicons/) is automatically placed in the `end` slot (you can use the `hideDropdownIcon` property to hide it):\n\n<img src=\"/img/components/button/dropdown.png\" class=\"n-border n-border-radius\"  style=\"max-inline-size:700px;\" loading=\"lazy\" height=\"475\" width=\"800\" alt=\"Dropdown button\" />\n\nEach button size has a recommended icon size. The medium button uses the `s` icon size, the [small button](/components/button/?example=small+buttons) uses the `xs` icon size, and the [large button](/components/button/?example=large+buttons) uses the `m` icon size. The icon will adjust size automatically based on the button size, so you will get the correct behavior by default. However, this can be overridden by explicitly setting a size on the icon.\n\n<img src=\"/img/components/button/icon-sizes.png\" class=\"n-border n-border-radius n-brand-therapy\" style=\"max-inline-size:700px;\" loading=\"lazy\" height=\"475\" width=\"800\" alt=\"Button icon sizes\" />\n<img src=\"/img/components/button/icon-sizes-vet.png\" class=\"n-border n-border-radius n-brand-veterinary\" style=\"max-inline-size:700px;\" loading=\"lazy\" height=\"475\" width=\"800\" alt=\"Button icon sizes\" />\n\nUse `interface-add-small` icon in the `start` slot for create/add type primary actions in the [header](/components/header/):\n\n<img src=\"/img/components/button/create.png\" class=\"n-border n-border-radius n-brand-therapy\"  style=\"max-inline-size:700px;\" loading=\"lazy\" height=\"475\" width=\"800\" alt=\"Create/add type primary action with icon\" />\n<img src=\"/img/components/button/create-vet.png\" class=\"n-border n-border-radius n-brand-veterinary\"  style=\"max-inline-size:700px;\" loading=\"lazy\" height=\"475\" width=\"800\" alt=\"Create/add type primary action with icon\" />\n\n---\n\n## Additional considerations\n\n- Users of assistive technology expect a button to submit data or do an action. If you need the button to navigate into another view, use the `href` property which will output `<a>` tag instead of a `<button>`.\n- When you need to disable a button, use `disabled` property as it conveys this information correctly to assistive technologies like screen readers.\n- Button component provides 3 size variants; small, medium and large. The large size should only be used for marketing purposes or on areas such as an empty space/content notice.\n",
          "examples": [],
          "dependencies": [
            "spinner"
          ],
          "tagName": "nord-button",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Button",
            "module": "src/button/Button.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-button",
          "declaration": {
            "name": "Button",
            "module": "src/button/Button.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/button-group/ButtonGroup.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Button Group', component: 'nord-button-group', tags: ['autodocs'], argTypes: { variant: { control: 'select', options: ['default', 'spaced'], }, direction: { control: 'select', options: ['vertical', 'horizontal'], }, wrap: { control: 'boolean' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { variant: 'default', direction: 'horizontal', wrap: false, }, render: args => html` <nord-button-group variant=${args.variant} direction=${args.direction} ?wrap=${args.wrap}><nord-button>One</nord-button>\\n <nord-button>Two</nord-button>\\n <nord-button>Three</nord-button></nord-button-group> `, }"
        },
        {
          "kind": "variable",
          "name": "ActiveState",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<p class=\"n-typescale-m n-margin-be-s\" id=\"label\">Formatting options</p> <nord-button-group aria-labelledby=\"label\"> <nord-button> Bold <nord-icon slot=\"end\" name=\"text-bold\"></nord-icon> </nord-button> <nord-button> Italic <nord-icon slot=\"end\" name=\"text-italic\"></nord-icon> </nord-button> <nord-button> Underline <nord-icon slot=\"end\" name=\"text-underline\"></nord-icon> </nord-button> <nord-button> Strikethrough <nord-icon slot=\"end\" name=\"text-strike-through\"></nord-icon> </nord-button> </nord-button-group>` container.querySelector('nord-button-group').addEventListener('click', (event) => { event.target.setAttribute('aria-pressed', event.target.getAttribute('aria-pressed') !== 'true') }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-visually-hidden id=\"label\">Send options</nord-visually-hidden> <nord-button-group aria-labelledby=\"label\"> <nord-button variant=\"primary\">Send invoice</nord-button> <nord-dropdown size=\"s\" align=\"end\"> <nord-button slot=\"toggle\" variant=\"primary\" square> <nord-icon name=\"arrow-down-small\"></nord-icon> </nord-button> <nord-dropdown-item>Send later today</nord-dropdown-item> <nord-dropdown-item>Send tomorrow</nord-dropdown-item> <nord-dropdown-item>Mark as paid</nord-dropdown-item> </nord-dropdown> </nord-button-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Direction",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"start\"> <nord-visually-hidden id=\"label\">Formatting controls</nord-visually-hidden> <nord-button-group aria-labelledby=\"label\"> <nord-button> Bold <nord-icon slot=\"start\" name=\"text-bold\"></nord-icon> </nord-button> <nord-button> Italics <nord-icon slot=\"start\" name=\"text-italic\"></nord-icon> </nord-button> <nord-button> Underline <nord-icon slot=\"start\" name=\"text-underline\"></nord-icon> </nord-button> <nord-button> Strikethrough <nord-icon slot=\"start\" name=\"text-strike-through\"></nord-icon> </nord-button> </nord-button-group> <nord-visually-hidden id=\"label\">Formatting controls</nord-visually-hidden> <nord-button-group direction=\"vertical\" aria-labelledby=\"label\" style=\"--n-button-text-align: start\"> <nord-button expand> Bold <nord-icon slot=\"start\" name=\"text-bold\"></nord-icon> </nord-button> <nord-button expand> Italics <nord-icon slot=\"start\" name=\"text-italic\"></nord-icon> </nord-button> <nord-button expand> Underline <nord-icon slot=\"start\" name=\"text-underline\"></nord-icon> </nord-button> <nord-button expand> Strikethrough <nord-icon slot=\"start\" name=\"text-strike-through\"></nord-icon> </nord-button> </nord-button-group> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Single",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<!-- When you start out with one button, but conditionally add more --> <nord-stack> <nord-visually-hidden id=\"label\">Send options</nord-visually-hidden> <nord-button-group aria-labelledby=\"label\" id=\"button-group\"> <nord-button variant=\"primary\">Send invoice</nord-button> </nord-button-group> <nord-button id=\"add-button\" size=\"s\">Add button to group</nord-button> </nord-stack>` container.querySelector('#add-button').addEventListener('click', () => { const buttonGroup = container.querySelector('#button-group') const button = document.createElement('nord-button') button.setAttribute('variant', 'primary') button.textContent = 'Send reminder' buttonGroup.appendChild(button) }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "SmallButtons",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"start\"> <nord-visually-hidden id=\"label\">Formatting controls</nord-visually-hidden> <nord-button-group aria-labelledby=\"label\"> <nord-button size=\"s\"> <nord-icon label=\"Bold\" name=\"text-bold\"></nord-icon> </nord-button> <nord-button size=\"s\"> <nord-icon label=\"Italic\" name=\"text-italic\"></nord-icon> </nord-button> <nord-button size=\"s\"> <nord-icon label=\"Underline\" name=\"text-underline\"></nord-icon> </nord-button> <nord-button size=\"s\"> <nord-icon label=\"Strike through\" name=\"text-strike-through\"></nord-icon> </nord-button> </nord-button-group> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Spaced",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-button-group variant=\"spaced\" wrap> <nord-button variant=\"secondary\">Cancel</nord-button> <nord-button variant=\"primary\">Save changes</nord-button> </nord-button-group> <nord-button-group variant=\"spaced\"> <nord-button aria-describedby=\"export\" size=\"s\">Export</nord-button> <nord-button variant=\"primary\" size=\"s\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> </nord-button-group> <nord-tooltip id=\"export\" position=\"block-end\">Export data as Spreadsheet</nord-tooltip> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithDropdown",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-visually-hidden id=\"label\">Paragraph formatting controls</nord-visually-hidden> <nord-button-group aria-labelledby=\"label\"> <nord-button> <nord-icon slot=\"start\" name=\"text-indent-increase\"></nord-icon> Increase indent </nord-button> <nord-button> <nord-icon slot=\"start\" name=\"text-indent-decrease\"></nord-icon> Decrease indent </nord-button> <nord-dropdown size=\"s\"> <nord-button slot=\"toggle\">Alignment</nord-button> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"text-left-align\"></nord-icon> Align left </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"text-right-align\"></nord-icon> Align right </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"text-center\"></nord-icon> Align center </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"text-justified\"></nord-icon> Align justified </nord-dropdown-item> </nord-dropdown> <nord-button> <nord-icon slot=\"start\" name=\"text-list\"></nord-icon> List </nord-button> </nord-button-group> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/button-group/ButtonGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/button-group/ButtonGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ActiveState",
          "declaration": {
            "name": "ActiveState",
            "module": "src/button-group/ButtonGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/button-group/ButtonGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Direction",
          "declaration": {
            "name": "Direction",
            "module": "src/button-group/ButtonGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Single",
          "declaration": {
            "name": "Single",
            "module": "src/button-group/ButtonGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "SmallButtons",
          "declaration": {
            "name": "SmallButtons",
            "module": "src/button-group/ButtonGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Spaced",
          "declaration": {
            "name": "Spaced",
            "module": "src/button-group/ButtonGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithDropdown",
          "declaration": {
            "name": "WithDropdown",
            "module": "src/button-group/ButtonGroup.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/button-group/ButtonGroup.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Button groups are designed to bring together button controls that are of a similar nature. For example text formatting controls.",
          "name": "ButtonGroup",
          "cssProperties": [
            {
              "description": "Controls the rounded corners of the button group, using [border radius tokens](/tokens/#border-radius). Only relevant for the default variant.",
              "name": "--n-button-group-border-radius",
              "default": "var(--n-border-radius-s)"
            },
            {
              "description": "Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow). Only relevant for the default variant.",
              "name": "--n-button-group-box-shadow",
              "default": "var(--n-box-shadow)"
            }
          ],
          "slots": [
            {
              "description": "The button group content",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "defaultSlot",
              "privacy": "private",
              "default": "new SlotController(this)"
            },
            {
              "kind": "field",
              "name": "dirController",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "'default' | 'spaced'"
              },
              "default": "'default'",
              "description": "The style variant of the button group.",
              "attribute": "variant",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "direction",
              "type": {
                "text": "'vertical' | 'horizontal'"
              },
              "default": "'horizontal'",
              "description": "The direction of the button group.",
              "attribute": "direction",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "wrap",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Defines whether the buttons are forced in a single line\nor can be flowed into multiple lines (only applied when variant is set to `spaced`).",
              "attribute": "wrap",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "role",
              "type": {
                "text": "string"
              },
              "default": "'group'",
              "description": "The appropriate role for the containing element.",
              "attribute": "role",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "variant",
              "type": {
                "text": "'default' | 'spaced'"
              },
              "default": "'default'",
              "description": "The style variant of the button group.",
              "fieldName": "variant"
            },
            {
              "name": "direction",
              "type": {
                "text": "'vertical' | 'horizontal'"
              },
              "default": "'horizontal'",
              "description": "The direction of the button group.",
              "fieldName": "direction"
            },
            {
              "name": "wrap",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Defines whether the buttons are forced in a single line\nor can be flowed into multiple lines (only applied when variant is set to `spaced`).",
              "fieldName": "wrap"
            },
            {
              "name": "role",
              "type": {
                "text": "string"
              },
              "default": "'group'",
              "description": "The appropriate role for the containing element.",
              "fieldName": "role"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "structure",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to group together buttons, or dropdowns, of a similar nature or purpose.\n- Use the appropriate `role` attribute on the button group to provide additional semantics.\n- Use an `aria-labelledby` attribute referencing another element to best explain the contents of the button group.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t add components other than buttons, dropdowns and in some instances visually hidden components to the button group.\n- Don’t skip the addition of an appropriate label if the added `role` attribute value calls for it.\n- Don’t use for building grid based layouts.\n\n</div>\n\n---\n\n## Content guidelines\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">View user settings</div>\n<div class=\"n-usage n-usage-dont\">Click here</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Add item</div>\n<div class=\"n-usage n-usage-dont\">Add an item</div>\n\n---\n\n## Variants\n\nThis section describes the different component variants, their purpose, and when to use each variant.\n\n| Name      | Purpose                                                                                                  |\n| --------- | -------------------------------------------------------------------------------------------------------- |\n| `default` | The default variant renders a group of segmented buttons to emphasize that they’re thematically-related. |\n| `spaced`  | The spaced variant renders a gap between the buttons to space them out evenly.                           |\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-button-group",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "ButtonGroup",
            "module": "src/button-group/ButtonGroup.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-button-group",
          "declaration": {
            "name": "ButtonGroup",
            "module": "src/button-group/ButtonGroup.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/card/Card.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Card', component: 'nord-card', tags: ['autodocs'], argTypes: { padding: { control: 'select', options: ['m', 'l', 'none'], }, footerDivider: { control: 'boolean' }, content: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { content: 'Card content goes here.', padding: 'm', footerDivider: false, }, render: args => html` <nord-card padding=${args.padding} ?footer-divider=${args.footerDivider}>${args.content}</nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-card> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "Padding",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-card padding=\"none\"> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? </nord-card> <nord-card padding=\"m\"> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? </nord-card> <nord-card padding=\"l\"> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? </nord-card> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "ResponsiveCardLayout",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>@media (max-width: 768px) { .stack { flex-direction: column; } }</style> <nord-stack class=\"stack\" direction=\"horizontal\" gap=\"l\"> <nord-card padding=\"l\"> <h2 slot=\"header\">Account overview</h2> <nord-stack direction=\"horizontal\"> <nord-stack gap=\"l\"> <p> View all saved data on your Nordhealth account and choose what activity is kept to personalize your experience. </p> <nord-button variant=\"primary\">Manage your account</nord-button> </nord-stack> </nord-stack> </nord-card> <nord-card padding=\"l\"> <h2 slot=\"header\">Security checkup</h2> <nord-stack direction=\"horizontal\"> <nord-stack gap=\"l\"> <p>Our Security Checkup analyzed your account and data. We found no recommended actions this time.</p> <nord-button variant=\"primary\">Manage security</nord-button> </nord-stack> </nord-stack> </nord-card> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAlignedFooters",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\"> <nord-card footer-divider> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. <div slot=\"footer\"> <p class=\"n-typescale-m\">Footer content</p> </div> </nord-card> <nord-card footer-divider> Lorem ipsum, dolor sit amet consectetur adipisicing elit. <div slot=\"footer\"> <p class=\"n-typescale-m\">Footer content</p> </div> </nord-card> <nord-card footer-divider> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? <div slot=\"footer\"> <p class=\"n-typescale-m\">Footer content</p> </div> </nord-card> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithCustomHeader",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-card { --n-card-header-background: var(--n-color-surface-raised); }</style> <nord-card padding=\"m\"> <h2 slot=\"header\">Header content</h2> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "WithForm",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack style=\"max-inline-size: 340px; margin: var(--n-space-xl) auto\"> <nord-banner shadow variant=\"warning\">You’ve been signed out. Please sign in to continue.</nord-banner> <nord-card padding=\"l\"> <h1 slot=\"header\">Sign in to Nord</h1> <form action=\"#\"> <nord-stack> <nord-input label=\"Username\" expand required hide-required name=\"username\" type=\"email\" placeholder=\"user@example.com\" ></nord-input> <nord-input label=\"Password\" expand required hide-required name=\"password\" type=\"password\" placeholder=\"••••••••\" > </nord-input> <nord-button type=\"submit\" expand variant=\"primary\">Sign in</nord-button> </nord-stack> </form> </nord-card> <nord-card class=\"n-align-center\"> New to Nord? <a href=\"#\">Create an account</a>. </nord-card> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithHeaderActions",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-card padding=\"none\"> <h2 slot=\"header\">Your items</h2> <div slot=\"header-end\"> <nord-input size=\"s\" label=\"Search\" hide-label placeholder=\"Item name\" type=\"search\"></nord-input> <nord-select hide-label size=\"s\" label=\"Filter by state\" placeholder=\"Please select\"> <nord-icon slot=\"icon\" name=\"interface-filter\"></nord-icon> <option value=\"active\">Active</option> <option value=\"archived\">Archived</option> </nord-select> <nord-select hide-label size=\"s\" label=\"Sort\" placeholder=\"Please select\"> <nord-icon slot=\"icon\" name=\"arrow-up-down-long\"></nord-icon> <option>Creation date</option> <option>Last modified date</option> </nord-select> </div> <nord-table> <table> <thead> <tr> <th class=\"n-table-align-right\">ID</th> <th>Name</th> <th>Description</th> <th>State</th> <th class=\"n-table-align-right\">Creation date</th> <th class=\"n-table-align-right\">Last modified date</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">01</td> <td>Item name 1</td> <td class=\"n-caption\">Lorem ipsum dolor sit amet consectetur adipisicing elit. Adipisci, necessitatibus!</td> <td> <nord-badge variant=\"success\">Active</nord-badge> </td> <td class=\"n-caption n-table-align-right\">20.3.2020</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">02</td> <td>Item name 2</td> <td class=\"n-caption\">Lorem ipsum dolor sit amet consectetur adipisicing elit. Adipisci, necessitatibus!</td> <td> <nord-badge variant=\"warning\">Archived</nord-badge> </td> <td class=\"n-caption n-table-align-right\">19.3.2020</td> <td class=\"n-caption n-table-align-right\">19.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">03</td> <td>Item name 3</td> <td class=\"n-caption\">Lorem ipsum dolor sit amet consectetur adipisicing elit. Adipisci, necessitatibus!</td> <td> <nord-badge variant=\"success\">Active</nord-badge> </td> <td class=\"n-caption n-table-align-right\">18.3.2020</td> <td class=\"n-caption n-table-align-right\">18.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">04</td> <td>Item name 4</td> <td class=\"n-caption\">Lorem ipsum dolor sit amet consectetur adipisicing elit. Adipisci, necessitatibus!</td> <td> <nord-badge variant=\"success\">Active</nord-badge> </td> <td class=\"n-caption n-table-align-right\">17.3.2020</td> <td class=\"n-caption n-table-align-right\">17.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">05</td> <td>Item name 5</td> <td class=\"n-caption\">Lorem ipsum dolor sit amet consectetur adipisicing elit. Adipisci, necessitatibus!</td> <td> <nord-badge variant=\"warning\">Archived</nord-badge> </td> <td class=\"n-caption n-table-align-right\">16.3.2020</td> <td class=\"n-caption n-table-align-right\">16.3.2021</td> </tr> </tbody> </table> </nord-table> </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "WithHeaderAndFooter",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-card padding=\"m\"> <h2 slot=\"header\">Header content</h2> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? <div slot=\"footer\">Footer content</div> </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "WithScrollableContent",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>.content { padding: var(--n-space-m); max-block-size: 200px; overflow-x: auto; }</style> <nord-stack style=\"max-inline-size: 340px; margin: var(--n-space-l) auto\"> <nord-card padding=\"none\"> <h2 slot=\"header\">Header content</h2> <div class=\"content\"> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? Vivamus non tincidunt lacus. Vestibulum et vestibulum turpis, non elementum justo. Cras nec est tincidunt, faucibus neque vitae, pretium purus. Nulla euismod mauris purus, a hendrerit sapien pretium interdum. Nulla at quam enim. Vestibulum leo sem, hendrerit ultricies porttitor eu, facilisis eget leo. Aliquam molestie sapien arcu, eu pulvinar magna suscipit quis. Fusce at ultricies nunc. Aenean vitae nulla at ligula imperdiet vulputate. Aliquam erat volutpat. </div> </nord-card> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithScrollableTable",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-table.scrollable { max-block-size: 240px; } nord-table.scrollable th { position: sticky; inset-block-start: 0; z-index: var(--n-index-sticky); }</style> <nord-card padding=\"none\"> <h2 slot=\"header\">Table heading</h2> <nord-table class=\"scrollable\"> <table> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Status</th> <th>Description</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> <th class=\"n-table-align-right\">Actions</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">19.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">17.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">12.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">10.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">9.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">3.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">1.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">30.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">26.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td><nord-badge variant=\"danger\">Alert</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">24.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">23.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">22.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">21.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">18.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> </tbody> </table> </nord-table> </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "WithSections",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-card padding=\"none\"> <div class=\"n-padding-m\"> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? </div> <nord-divider></nord-divider> <div class=\"n-padding-m\"> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? </div> <nord-divider></nord-divider> <div class=\"n-padding-m\"> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla provident aliquid corporis tempora eius quam, quae vel molestias esse maxime aperiam totam suscipit. Nobis consectetur optio reprehenderit animi? Suscipit, quibusdam? </div> </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "WithTable",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-card padding=\"none\"> <h2 slot=\"header\">Table heading</h2> <nord-table> <table> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Description</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">20.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">19.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">18.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">290,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">17.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">49,90&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">16.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">25,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">15.3.2021</td> </tr> </tbody> </table> </nord-table> </nord-card> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Padding",
          "declaration": {
            "name": "Padding",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ResponsiveCardLayout",
          "declaration": {
            "name": "ResponsiveCardLayout",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAlignedFooters",
          "declaration": {
            "name": "WithAlignedFooters",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithCustomHeader",
          "declaration": {
            "name": "WithCustomHeader",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithForm",
          "declaration": {
            "name": "WithForm",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithHeaderActions",
          "declaration": {
            "name": "WithHeaderActions",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithHeaderAndFooter",
          "declaration": {
            "name": "WithHeaderAndFooter",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithScrollableContent",
          "declaration": {
            "name": "WithScrollableContent",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithScrollableTable",
          "declaration": {
            "name": "WithScrollableTable",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithSections",
          "declaration": {
            "name": "WithSections",
            "module": "src/card/Card.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithTable",
          "declaration": {
            "name": "WithTable",
            "module": "src/card/Card.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/card/Card.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Cards are shadowed surfaces that display content and actions on a\nsingle topic. They should be easy to scan for relevant and\nactionable information.",
          "name": "Card",
          "cssProperties": [
            {
              "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
              "name": "--n-card-border-radius",
              "default": "var(--n-border-radius)"
            },
            {
              "description": "Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).",
              "name": "--n-card-box-shadow",
              "default": "var(--n-box-shadow-popout)"
            },
            {
              "description": "Controls the padding on all sides of the card.",
              "name": "--n-card-padding",
              "default": "var(--n-space-m)"
            },
            {
              "description": "Controls the padding of items slotted within the card. This does not affect the block padding of items slotted into the header.",
              "name": "--n-card-slot-padding",
              "default": "var(--n-space-m)"
            },
            {
              "description": "Controls the background color of the card header.",
              "name": "--n-card-header-background",
              "default": "transparent"
            },
            {
              "description": "Controls the border color of the card header and footer divider.",
              "name": "--n-card-border-color",
              "default": "var(--n-color-border)"
            },
            {
              "description": "Controls the block (top and bottom) padding of the card header.",
              "name": "--n-card-header-padding-block",
              "default": "var(--n-space-m)"
            },
            {
              "description": "Controls the inline (left and right) padding of the card header.",
              "name": "--n-card-header-padding-inline",
              "default": "var(--n-card-slot-padding)"
            },
            {
              "description": "Controls the flex-grow value of the header slot.",
              "name": "--n-card-header-slot-flex-grow",
              "default": "0"
            }
          ],
          "slots": [
            {
              "description": "The card content.",
              "name": ""
            },
            {
              "description": "Optional slot that holds a header for the card.",
              "name": "header"
            },
            {
              "description": "Optional slot that positions content at the end of the header. Useful for actions or additional info.",
              "name": "header-end"
            },
            {
              "description": "Optional slot that holds footer content for the card.",
              "name": "footer"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "headerSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'header')"
            },
            {
              "kind": "field",
              "name": "headerEndSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'header-end')"
            },
            {
              "kind": "field",
              "name": "footerSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'footer')"
            },
            {
              "kind": "field",
              "name": "padding",
              "type": {
                "text": "'m' | 'l' | 'none'"
              },
              "default": "'m'",
              "description": "Controls the padding of the card component. When set to “none”,\nthe header and footer slots will still have padding.",
              "attribute": "padding",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "footerDivider",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When set, adds a divider border above the footer slot.",
              "attribute": "footer-divider",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "padding",
              "type": {
                "text": "'m' | 'l' | 'none'"
              },
              "default": "'m'",
              "description": "Controls the padding of the card component. When set to “none”,\nthe header and footer slots will still have padding.",
              "fieldName": "padding"
            },
            {
              "name": "footer-divider",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When set, adds a divider border above the footer slot.",
              "fieldName": "footerDivider"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "structure",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to display content and actions on a single topic inside a container.\n- Use to visually separate specific parts of content in an application view.\n- Use to wrap a form into a container, for example a login form.\n- Include a header when placing a [Table](/components/table) component inside the card.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place cards within cards. Consider using the [divider](/components/divider/) component to break up sections instead.\n- Don’t use when you need to capture user’s attention in a prominent way.\n- Don’t use to inform user about important changes or conditions in the interface.\n- Don’t use multiple primary buttons inside a card. A card should only contain a single primary action.\n\n</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-card",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Card",
            "module": "src/card/Card.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-card",
          "declaration": {
            "name": "Card",
            "module": "src/card/Card.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/calendar/Calendar.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Calendar', component: 'nord-calendar', tags: ['autodocs'], argTypes: { value: { control: 'text' }, firstDayOfWeek: { control: 'text' }, min: { control: 'text' }, max: { control: 'text' }, today: { control: 'text' }, expand: { control: 'boolean' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { expand: false, }, render: args => html` <nord-calendar value=${args.value || nothing} first-day-of-week=${args.firstDayOfWeek || nothing} min=${args.min || nothing} max=${args.max || nothing} today=${args.today || nothing} ?expand=${args.expand}>Content</nord-calendar> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-calendar></nord-calendar>`, }"
        },
        {
          "kind": "variable",
          "name": "ChangeToday",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-calendar value=\"2025-01-03\" today=\"2026-03-06\"></nord-calendar>`, }"
        },
        {
          "kind": "variable",
          "name": "DateSelected",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-calendar value=\"2022-01-11\"></nord-calendar>`, }"
        },
        {
          "kind": "variable",
          "name": "DisablingDays",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-calendar value=\"2022-01-12\"></nord-calendar>` const calendar = container.querySelector('nord-calendar') calendar.isDateDisabled = function isWeekend(date) { return date.getDay() === 0 || date.getDay() === 6 } return container }, }"
        },
        {
          "kind": "variable",
          "name": "Expanded",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-calendar expand></nord-calendar>`, }"
        },
        {
          "kind": "variable",
          "name": "FocusDateEvent",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-stack> <output></output> <nord-calendar value=\"2022-02-16\"></nord-calendar> </nord-stack>` const calendar = container.querySelector('nord-calendar') const output = container.querySelector('output') calendar.addEventListener('nord-focus-date', (e) => { const formatted = e.date.toLocaleDateString('en', { year: 'numeric', month: 'long', day: 'numeric' }) output.innerText = `Focused day: ${formatted}` }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "HighlightingDays",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-stack> <p>Highlighted dates are fully booked</p> <nord-calendar value=\"2022-01-12\"></nord-calendar> </nord-stack>` const calendar = container.querySelector('nord-calendar') // as an example, highlight every sixth day calendar.isDateHighlighted = (date) => { return date.getDate() % 6 === 0 ? 'fully booked' : false } return container }, }"
        },
        {
          "kind": "variable",
          "name": "Inline",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-calendar style=\"--n-calendar-box-shadow: none\"></nord-calendar>`, }"
        },
        {
          "kind": "variable",
          "name": "UsingMinMax",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-calendar value=\"2021-02-14\" min=\"2021-02-08\" max=\"2021-02-21\"></nord-calendar> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/calendar/Calendar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/calendar/Calendar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/calendar/Calendar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ChangeToday",
          "declaration": {
            "name": "ChangeToday",
            "module": "src/calendar/Calendar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "DateSelected",
          "declaration": {
            "name": "DateSelected",
            "module": "src/calendar/Calendar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "DisablingDays",
          "declaration": {
            "name": "DisablingDays",
            "module": "src/calendar/Calendar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Expanded",
          "declaration": {
            "name": "Expanded",
            "module": "src/calendar/Calendar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "FocusDateEvent",
          "declaration": {
            "name": "FocusDateEvent",
            "module": "src/calendar/Calendar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HighlightingDays",
          "declaration": {
            "name": "HighlightingDays",
            "module": "src/calendar/Calendar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Inline",
          "declaration": {
            "name": "Inline",
            "module": "src/calendar/Calendar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingMinMax",
          "declaration": {
            "name": "UsingMinMax",
            "module": "src/calendar/Calendar.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/calendar/Calendar.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Calendar allows user to pick a date. It comes with built-in\nfunctionality that allows you to set a minimum and a maximum allowed date.\nPlease note that the date must be passed in ISO-8601 format.",
          "name": "Calendar",
          "cssProperties": [
            {
              "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
              "name": "--n-calendar-border-radius",
              "default": "var(--n-border-radius)"
            },
            {
              "description": "Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).",
              "name": "--n-calendar-box-shadow",
              "default": "var(--n-box-shadow-popout)"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "monthSelectNode",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "focusedDayNode",
              "type": {
                "text": "HTMLButtonElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "direction",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "swipe",
              "privacy": "private",
              "default": "new SwipeController(this, { matchesGesture: isHorizontalSwipe, onSwipeEnd: ({ distX }) => this.addMonths(distX < 0 ? 1 : -1), })"
            },
            {
              "kind": "field",
              "name": "shortcuts",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "localize",
              "privacy": "private",
              "default": "new LocalizeController<'nord-calendar'>(this, { onLangChange: () => this.handleLangChange(), })"
            },
            {
              "kind": "field",
              "name": "dateFormatShort",
              "type": {
                "text": "Intl.DateTimeFormat"
              },
              "privacy": "private",
              "description": "Whilst dateAdapter is used for handling the formatting/parsing dates in the input,\nthese are used to format dates exclusively for the benefit of screen readers.\n\nWe prefer DateTimeFormat over date.toLocaleDateString, as the former has\nbetter performance when formatting large number of dates. See:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString#Performance"
            },
            {
              "kind": "field",
              "name": "monthNames",
              "type": {
                "text": "string[]"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "monthNamesShort",
              "type": {
                "text": "string[]"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "dayNames",
              "type": {
                "text": "string[]"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "dayNamesShort",
              "type": {
                "text": "string[]"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
              "attribute": "value"
            },
            {
              "kind": "field",
              "name": "firstDayOfWeek",
              "type": {
                "text": "DaysOfWeek"
              },
              "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
              "attribute": "first-day-of-week",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "min",
              "type": {
                "text": "string | undefined"
              },
              "description": "Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the max property.",
              "attribute": "min",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "max",
              "type": {
                "text": "string | undefined"
              },
              "description": "Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the min property.",
              "attribute": "max",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "today",
              "type": {
                "text": "string | undefined"
              },
              "description": "The date that is considered today. Must be in IS0-8601 format: YYYY-MM-DD.\nIf not set, the current local date of the user is used.",
              "attribute": "today",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the calendar expands to fill the width of its container.",
              "attribute": "expand",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "isDateDisabled",
              "type": {
                "text": "DatePredicate"
              },
              "default": "isDateDisabled",
              "description": "Controls which days are disabled and therefore disallowed.\nFor example, this can be used to disallow selection of weekends."
            },
            {
              "kind": "field",
              "name": "isDateHighlighted",
              "type": {
                "text": "(date: Date) => string | boolean"
              },
              "default": "isDateHighlighted",
              "description": "Controls which days are highlighted with a small indicator.\nReturning a \"falsy\" value will not show an indicator.\nReturning \"truthy\" value will show the indicator, but without an accessible label.\nReturning a string will show the indicator, and use the string as accessible label.\nIt is recommended to return a string rather than a truthy value whenever possible."
            },
            {
              "kind": "field",
              "name": "activeFocus",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "focusedDay",
              "privacy": "private",
              "default": "new Date()"
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions & { target: 'day' | 'month' }"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the calendar."
            },
            {
              "kind": "method",
              "name": "handleValueChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleFocusedDayChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleLangChange",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleDaySelect",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getToday",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "addDays",
              "privacy": "private",
              "parameters": [
                {
                  "name": "days",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "addMonths",
              "privacy": "private",
              "parameters": [
                {
                  "name": "months",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "addYears",
              "privacy": "private",
              "parameters": [
                {
                  "name": "years",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "startOfWeek",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "endOfWeek",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setMonth",
              "privacy": "private",
              "parameters": [
                {
                  "name": "month",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setYear",
              "privacy": "private",
              "parameters": [
                {
                  "name": "year",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setFocusedDay",
              "privacy": "private",
              "parameters": [
                {
                  "name": "day",
                  "type": {
                    "text": "Date"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleMonthSelect",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleYearSelect",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleNextMonthClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handlePreviousMonthClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "enableActiveFocus",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "disableActiveFocus",
              "privacy": "private"
            }
          ],
          "events": [
            {
              "name": "nord-focus-date",
              "type": {
                "text": "DateSelectEvent"
              },
              "description": "Dispatched when the calendar's focused date changes."
            },
            {
              "type": {
                "text": "DateSelectEvent"
              },
              "description": "Dispatched when a date is selected and the value changes.",
              "name": "change"
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
              "fieldName": "value"
            },
            {
              "name": "first-day-of-week",
              "type": {
                "text": "DaysOfWeek"
              },
              "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
              "fieldName": "firstDayOfWeek"
            },
            {
              "name": "min",
              "type": {
                "text": "string | undefined"
              },
              "description": "Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the max property.",
              "fieldName": "min"
            },
            {
              "name": "max",
              "type": {
                "text": "string | undefined"
              },
              "description": "Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the min property.",
              "fieldName": "max"
            },
            {
              "name": "today",
              "type": {
                "text": "string | undefined"
              },
              "description": "The date that is considered today. Must be in IS0-8601 format: YYYY-MM-DD.\nIf not set, the current local date of the user is used.",
              "fieldName": "today"
            },
            {
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the calendar expands to fill the width of its container.",
              "fieldName": "expand"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [
            {
              "name": "prevMonthLabel",
              "description": "Accessible label for the previous month button."
            },
            {
              "name": "nextMonthLabel",
              "description": "Accessible label for the next month button."
            },
            {
              "name": "monthSelectLabel",
              "description": "Accessible label for the month select."
            },
            {
              "name": "yearSelectLabel",
              "description": "Accessible label for the year select."
            }
          ],
          "status": "ready",
          "category": "list",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n- Close calendar after a single date is selected, unless a range with a start and end date is required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use for choosing a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nCalendar component is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Calendar grid\n\n- `Space, Enter`: Selects a date.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n",
          "examples": [],
          "dependencies": [
            "icon",
            "button",
            "visually-hidden"
          ],
          "tagName": "nord-calendar",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Calendar",
            "module": "src/calendar/Calendar.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-calendar",
          "declaration": {
            "name": "Calendar",
            "module": "src/calendar/Calendar.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/calendar/DateSelectEvent.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "DateSelectEvent",
          "superclass": {
            "name": "NordEvent",
            "module": "/src/common/events.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DateSelectEvent",
          "declaration": {
            "name": "DateSelectEvent",
            "module": "src/calendar/DateSelectEvent.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/calendar/localization.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "calendarLocalization",
          "type": {
            "text": "object"
          },
          "default": "{ prevMonthLabel: 'Previous month', nextMonthLabel: 'Next month', monthSelectLabel: 'Month', yearSelectLabel: 'Year', }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "calendarLocalization",
            "module": "src/calendar/localization.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/checkbox/Checkbox.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Checkbox', component: 'nord-checkbox', tags: ['autodocs'], argTypes: { indeterminate: { control: 'boolean' }, checked: { control: 'boolean' }, size: { control: 'select', options: ['s', 'm', 'l'], }, label: { control: 'text' }, hint: { control: 'text' }, hideLabel: { control: 'boolean' }, placeholder: { control: 'text' }, error: { control: 'text' }, required: { control: 'boolean' }, hideRequired: { control: 'boolean' }, disabled: { control: 'boolean' }, name: { control: 'text' }, value: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { indeterminate: false, checked: false, size: 'm', hideLabel: false, required: false, hideRequired: false, disabled: false, }, render: args => html` <nord-checkbox ?indeterminate=${args.indeterminate} ?checked=${args.checked} size=${args.size} label=${args.label || nothing} hint=${args.hint || nothing} ?hide-label=${args.hideLabel} placeholder=${args.placeholder || nothing} error=${args.error || nothing} ?required=${args.required} ?hide-required=${args.hideRequired} ?disabled=${args.disabled} name=${args.name || nothing} value=${args.value || nothing}></nord-checkbox> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-checkbox label=\"Label\" value=\"Value\"></nord-checkbox>`, }"
        },
        {
          "kind": "variable",
          "name": "Checked",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-checkbox label=\"Label\" checked></nord-checkbox>`, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Checkboxes\"> <nord-stack> <nord-checkbox checked label=\"Checked\" disabled></nord-checkbox> <nord-checkbox label=\"Unchecked\" disabled></nord-checkbox> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "HiddenLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-checkbox label=\"Label\" hide-label></nord-checkbox>`, }"
        },
        {
          "kind": "variable",
          "name": "Indeterminate",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Checkboxes\"> <nord-stack> <nord-checkbox label=\"Indeterminate\" indeterminate></nord-checkbox> <nord-checkbox label=\"Indeterminate disabled\" indeterminate disabled></nord-checkbox> <nord-checkbox label=\"Indeterminate with error\" indeterminate error=\"This field is required\"></nord-checkbox> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "Required",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset required label=\"Required\"> <nord-stack> <nord-checkbox name=\"option\" value=\"1\" label=\"Option 1\"></nord-checkbox> <nord-checkbox name=\"option\" value=\"2\" label=\"Option 2\"></nord-checkbox> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\"> <nord-checkbox size=\"s\" checked label=\"Label\" value=\"Value\"></nord-checkbox> <nord-checkbox size=\"m\" checked label=\"Label\" value=\"Value\"></nord-checkbox> <nord-checkbox size=\"l\" checked label=\"Label\" value=\"Value\"></nord-checkbox> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-checkbox label=\"Label\"> <div slot=\"hint\"> Hint is an accessible way to provide <strong>additional information</strong> that might help the user </div> </nord-checkbox> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-checkbox> <div slot=\"label\">Label <span style=\"color: var(--n-color-status-success)\">with color</span></div> </nord-checkbox> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-checkbox label=\"Label\" hint=\"Hint is an accessible way to provide additional information that might help the user\" expand ></nord-checkbox> `, }"
        },
        {
          "kind": "variable",
          "name": "WithError",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-checkbox label=\"Label\" error=\"This field is required\"></nord-checkbox>`, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Checked",
          "declaration": {
            "name": "Checked",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HiddenLabel",
          "declaration": {
            "name": "HiddenLabel",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Indeterminate",
          "declaration": {
            "name": "Indeterminate",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexHint",
          "declaration": {
            "name": "WithAComplexHint",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexLabel",
          "declaration": {
            "name": "WithAComplexLabel",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAHint",
          "declaration": {
            "name": "WithAHint",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithError",
          "declaration": {
            "name": "WithError",
            "module": "src/checkbox/Checkbox.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/checkbox/Checkbox.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Checkboxes allow user to choose one or more options from a limited set of options.\nIf you have more than 10 options, please use Select component instead.",
          "name": "Checkbox",
          "cssProperties": [
            {
              "description": "Controls the text color of the label, using our [color tokens](/tokens/#color).",
              "name": "--n-label-color",
              "default": "var(--n-color-text)"
            }
          ],
          "slots": [
            {
              "description": "Use when a label requires more than plain text.",
              "name": "label"
            },
            {
              "description": "Optional slot that holds hint text for the input.",
              "name": "hint"
            },
            {
              "description": "Optional slot that holds error text for the input.",
              "name": "error"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "formValue",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "indeterminate",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the checkbox is in an indeterminate state.",
              "attribute": "indeterminate",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the checkbox is checked or not.",
              "attribute": "checked",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "attribute": "size",
              "reflects": true,
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "labelSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'label')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'error')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'hint')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formData",
              "privacy": "protected",
              "default": "new FormDataController(this, { value: () => this.formValue })",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'input'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'error'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'hint'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "attribute": "label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "attribute": "hint",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "attribute": "hide-label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "attribute": "placeholder",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "attribute": "error",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "attribute": "required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "attribute": "hide-required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "additionalContent",
                  "optional": true,
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderError",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getInvalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasHint",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasError",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "indeterminate",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the checkbox is in an indeterminate state.",
              "fieldName": "indeterminate"
            },
            {
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the checkbox is checked or not.",
              "fieldName": "checked"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "fieldName": "size",
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "fieldName": "label",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "fieldName": "hint",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-label",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "fieldName": "hideLabel",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "fieldName": "placeholder",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "fieldName": "error",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "fieldName": "required",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "fieldName": "hideRequired",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "SizeMixin",
              "module": "/src/common/mixins/SizeMixin.js"
            },
            {
              "name": "FormAssociatedMixin",
              "module": "/src/common/mixins/FormAssociatedMixin.js"
            },
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "form",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use for making it possible to choose one or more options from a limited number of options.\n- Use for “accepting terms of service” and similar functionality.\n- Use in forms to toggle something on or off.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Avoid using when you have more than 10 options to choose from.\n- Don’t change the selection of another checkbox when another one is clicked. Only exception is when a checkbox is used to make a bulk selection of multiple items.\n\n</div>\n\n---\n\n## Content guidelines\n\nCheckbox labels should be clear, accurate and predictable. It should be possible for the user to understand what they are selecting:\n\n<div class=\"n-usage n-usage-do\">User settings</div>\n<div class=\"n-usage n-usage-dont\">Option 1</div>\n\nWhen writing checkbox labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">User settings</div>\n<div class=\"n-usage n-usage-dont\">User Settings</div>\n\nAvoid ending in punctuation if it’s a single sentence, word, or a fragment:\n\n<div class=\"n-usage n-usage-do\">Show dashboard</div>\n<div class=\"n-usage n-usage-dont\">Show dashboard.</div>\n\nDo not use commas or semicolons at the end of each line\n\n<div class=\"n-usage n-usage-do\">Patients</div>\n<div class=\"n-usage n-usage-dont\">Patients;</div>\n",
          "examples": [],
          "dependencies": [
            "icon"
          ],
          "tagName": "nord-checkbox",
          "customElement": true,
          "events": [
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the input.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the input's value is changed via user interaction.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Checkbox",
            "module": "src/checkbox/Checkbox.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-checkbox",
          "declaration": {
            "name": "Checkbox",
            "module": "src/checkbox/Checkbox.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/command-menu/CommandMenu.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Command Menu', component: 'nord-command-menu', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { open: true, externalFiltering: false, exitNestedOnSearch: false, }, render: ({ open, externalFiltering, exitNestedOnSearch }) => { const container = document.createElement('div') container.innerHTML = `<nord-command-menu></nord-command-menu> <nord-button variant=\"primary\">Open menu (Ctrl+K)</nord-button>` const menu = container.querySelector('nord-command-menu') menu.open = open menu.externalFiltering = externalFiltering menu.exitNestedOnSearch = exitNestedOnSearch menu.commands = [ { id: 'consultation', title: 'Start consultation', keywords: 'command new create', shortcut: 'Alt+KeyC', section: 'Commands', handler: () => { alert('Start consultation') }, }, { id: 'patient', title: 'New patient', keywords: 'command new create', shortcut: 'Alt+KeyP', icon: 'interface-add', section: 'Commands', handler: () => { alert('New patient') }, }, { id: 'appointment', title: 'New appointment', keywords: 'command new create', shortcut: 'Alt+KeyA', icon: 'interface-add', section: 'Commands', handler: () => { alert('New appointment') }, }, { id: 'invoice', title: 'New invoice', keywords: 'command new create', shortcut: 'Alt+KeyI', icon: 'interface-add', section: 'Commands', handler: () => { alert('New invoice') }, }, { id: 'user', title: 'Switch user', keywords: 'command change log sign out in', shortcut: 'Alt+KeyU', icon: 'user-multiple', section: 'Commands', handler: () => { alert('Switch user') }, }, { id: 'theme', keywords: 'dark light mode ui', title: 'Change theme...', icon: 'file-picture', shortcut: 'Alt+KeyT', section: 'Commands', }, { id: 'Light Theme', keywords: 'mode ui', title: 'Change theme to Light', icon: 'interface-mode-light', parent: 'theme', handler: () => { alert('Change to light theme') }, }, { id: 'Dark Theme', keywords: 'mode ui', title: 'Change theme to Dark', icon: 'interface-mode-dark', parent: 'theme', handler: () => { alert('Change to dark theme') }, }, { id: 'dashboard', keywords: 'sections view go to visit', title: 'Open dashboard', shortcut: 'Alt+Digit1', section: 'Sections', handler: () => { alert('Open dashboard') }, }, { id: 'payments', keywords: 'sections view go to visit', title: 'Open payments', shortcut: 'Alt+Digit2', section: 'Sections', handler: () => { alert('View payments') }, }, { id: 'reports', keywords: 'sections view go to visit', title: 'Open reports', shortcut: 'Alt+Digit3', section: 'Sections', handler: () => { alert('Open reports') }, }, { id: 'settings', keywords: 'sections view go to visit', title: 'Open settings', shortcut: 'Alt+Digit4', section: 'Sections', handler: () => { alert('Open settings') }, }, ] const button = container.querySelector('nord-button') if (navigator.platform.includes('Mac')) { button.textContent = 'Open menu (⌘+K)' } button.addEventListener('click', () => { menu.show() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-command-menu open></nord-command-menu> <nord-button variant=\"primary\">Open menu (Ctrl+K)</nord-button>` const menu = container.querySelector('nord-command-menu') menu.commands = [ { id: 'consultation', title: 'Start consultation', keywords: 'command new create', shortcut: 'Alt+KeyC', section: 'Commands', handler: () => { alert('Start consultation') }, }, { id: 'patient', title: 'New patient', keywords: 'command new create', shortcut: 'Alt+KeyP', icon: 'interface-add', section: 'Commands', handler: () => { alert('New patient') }, }, { id: 'appointment', title: 'New appointment', keywords: 'command new create', shortcut: 'Alt+KeyA', icon: 'interface-add', section: 'Commands', handler: () => { alert('New appointment') }, }, { id: 'invoice', title: 'New invoice', keywords: 'command new create', shortcut: 'Alt+KeyI', icon: 'interface-add', section: 'Commands', handler: () => { alert('New invoice') }, }, { id: 'user', title: 'Switch user', keywords: 'command change log sign out in', shortcut: 'Alt+KeyU', icon: 'user-multiple', section: 'Commands', handler: () => { alert('Switch user') }, }, { id: 'theme', keywords: 'dark light mode ui', title: 'Change theme...', icon: 'file-picture', shortcut: 'Alt+KeyT', section: 'Commands', }, { id: 'Light Theme', keywords: 'mode ui', title: 'Change theme to Light', icon: 'interface-mode-light', parent: 'theme', handler: () => { alert('Change to light theme') }, }, { id: 'Dark Theme', keywords: 'mode ui', title: 'Change theme to Dark', icon: 'interface-mode-dark', parent: 'theme', handler: () => { alert('Change to dark theme') }, }, { id: 'dashboard', keywords: 'sections view go to visit', title: 'Open dashboard', shortcut: 'Alt+Digit1', section: 'Sections', handler: () => { alert('Open dashboard') }, }, { id: 'payments', keywords: 'sections view go to visit', title: 'Open payments', shortcut: 'Alt+Digit2', section: 'Sections', handler: () => { alert('View payments') }, }, { id: 'reports', keywords: 'sections view go to visit', title: 'Open reports', shortcut: 'Alt+Digit3', section: 'Sections', handler: () => { alert('Open reports') }, }, { id: 'settings', keywords: 'sections view go to visit', title: 'Open settings', shortcut: 'Alt+Digit4', section: 'Sections', handler: () => { alert('Open settings') }, }, ] const button = container.querySelector('nord-button') if (navigator.platform.includes('Mac')) { button.textContent = 'Open menu (⌘+K)' } button.addEventListener('click', () => { menu.show() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "ExitNestedOnSearch",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-command-menu open exit-nested-on-search></nord-command-menu> <nord-button variant=\"primary\">Open menu (Ctrl+K)</nord-button>` const menu = container.querySelector('nord-command-menu') menu.commands = [ { id: 'consultation', title: 'Start consultation', keywords: 'command new create', shortcut: 'Alt+KeyC', section: 'Commands', handler: () => { alert('Start consultation') }, }, { id: 'patient', title: 'New patient', keywords: 'command new create', shortcut: 'Alt+KeyP', icon: 'interface-add', section: 'Commands', handler: () => { alert('New patient') }, }, { id: 'appointment', title: 'New appointment', keywords: 'command new create', shortcut: 'Alt+KeyA', icon: 'interface-add', section: 'Commands', handler: () => { alert('New appointment') }, }, { id: 'invoice', title: 'New invoice', keywords: 'command new create', shortcut: 'Alt+KeyI', icon: 'interface-add', section: 'Commands', handler: () => { alert('New invoice') }, }, { id: 'user', title: 'Switch user', keywords: 'command change log sign out in', shortcut: 'Alt+KeyU', icon: 'user-multiple', section: 'Commands', handler: () => { alert('Switch user') }, }, { id: 'theme', keywords: 'dark light mode ui', title: 'Change theme...', icon: 'file-picture', shortcut: 'Alt+KeyT', section: 'Commands', }, { id: 'Light Theme', keywords: 'mode ui', title: 'Change theme to Light', icon: 'interface-mode-light', parent: 'theme', handler: () => { alert('Change to light theme') }, }, { id: 'Dark Theme', keywords: 'mode ui', title: 'Change theme to Dark', icon: 'interface-mode-dark', parent: 'theme', handler: () => { alert('Change to dark theme') }, }, { id: 'dashboard', keywords: 'sections view go to visit', title: 'Open dashboard', shortcut: 'Alt+Digit1', section: 'Sections', handler: () => { alert('Open dashboard') }, }, { id: 'payments', keywords: 'sections view go to visit', title: 'Open payments', shortcut: 'Alt+Digit2', section: 'Sections', handler: () => { alert('View payments') }, }, { id: 'reports', keywords: 'sections view go to visit', title: 'Open reports', shortcut: 'Alt+Digit3', section: 'Sections', handler: () => { alert('Open reports') }, }, { id: 'settings', keywords: 'sections view go to visit', title: 'Open settings', shortcut: 'Alt+Digit4', section: 'Sections', handler: () => { alert('Open settings') }, }, ] const button = container.querySelector('nord-button') if (navigator.platform.includes('Mac')) { button.textContent = 'Open menu (⌘+K)' } button.addEventListener('click', () => { menu.show() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "ExternalFiltering",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-command-menu open external-filtering></nord-command-menu> <nord-button variant=\"primary\">Open menu (Ctrl+K)</nord-button>` const menu = container.querySelector('nord-command-menu') // Store all commands for external filtering const allCommands = [ { id: 'consultation', title: 'Start consultation', keywords: 'command new create', shortcut: 'Alt+KeyC', section: 'Commands', handler: () => { alert('Start consultation') }, }, { id: 'patient', title: 'New patient', keywords: 'command new create', shortcut: 'Alt+KeyP', icon: 'interface-add', section: 'Commands', handler: () => { alert('New patient') }, }, { id: 'appointment', title: 'New appointment', keywords: 'command new create', shortcut: 'Alt+KeyA', icon: 'interface-add', section: 'Commands', handler: () => { alert('New appointment') }, }, { id: 'invoice', title: 'New invoice', keywords: 'command new create', shortcut: 'Alt+KeyI', icon: 'interface-add', section: 'Commands', handler: () => { alert('New invoice') }, }, { id: 'user', title: 'Switch user', keywords: 'command change log sign out in', shortcut: 'Alt+KeyU', icon: 'user-multiple', section: 'Commands', handler: () => { alert('Switch user') }, }, { id: 'theme', keywords: 'dark light mode ui', title: 'Change theme...', icon: 'file-picture', shortcut: 'Alt+KeyT', section: 'Commands', }, { id: 'Light Theme', keywords: 'mode ui', title: 'Change theme to Light', icon: 'interface-mode-light', parent: 'theme', handler: () => { alert('Change to light theme') }, }, { id: 'Dark Theme', keywords: 'mode ui', title: 'Change theme to Dark', icon: 'interface-mode-dark', parent: 'theme', handler: () => { alert('Change to dark theme') }, }, { id: 'dashboard', keywords: 'sections view go to visit', title: 'Open dashboard', shortcut: 'Alt+Digit1', section: 'Sections', handler: () => { alert('Open dashboard') }, }, { id: 'payments', keywords: 'sections view go to visit', title: 'Open payments', shortcut: 'Alt+Digit2', section: 'Sections', handler: () => { alert('View payments') }, }, { id: 'reports', keywords: 'sections view go to visit', title: 'Open reports', shortcut: 'Alt+Digit3', section: 'Sections', handler: () => { alert('Open reports') }, }, { id: 'settings', keywords: 'sections view go to visit', title: 'Open settings', shortcut: 'Alt+Digit4', section: 'Sections', handler: () => { alert('Open settings') }, }, ] // Initialize with all commands menu.commands = allCommands // Implement custom external filtering logic // This example shows how you can implement your own search algorithm // when using external-filtering attribute function filterCommands(searchTerm) { if (!searchTerm.trim()) { // Show all commands when no search term menu.commands = allCommands return } const searchTerms = searchTerm.toLowerCase().split(/\\s+/) const filtered = allCommands.filter((command) => { const searchSpace = `${command.title} ${command.keywords || ''} ${command.section || ''}`.toLowerCase() // Check if all search terms are found in the command return searchTerms.every(term => searchSpace.includes(term)) }) menu.commands = filtered } // Listen for search changes using the input event menu.addEventListener('input', (event) => { filterCommands(menu.searchQuery) }) const button = container.querySelector('nord-button') if (navigator.platform.includes('Mac')) { button.textContent = 'Open menu (⌘+K)' } button.addEventListener('click', () => { menu.show() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "NoSections",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-command-menu open></nord-command-menu> <nord-button variant=\"primary\">Open menu (Ctrl+K)</nord-button>` const menu = container.querySelector('nord-command-menu') menu.commands = [ { id: 'consultation', title: 'Start consultation', keywords: 'command new create', shortcut: 'Alt+KeyC', handler: () => { alert('Start consultation') }, }, { id: 'patient', title: 'New patient', keywords: 'command new create', shortcut: 'Alt+KeyP', icon: 'interface-add', handler: () => { alert('New patient') }, }, { id: 'appointment', title: 'New appointment', keywords: 'command new create', shortcut: 'Alt+KeyA', icon: 'interface-add', handler: () => { alert('New appointment') }, }, { id: 'invoice', title: 'New invoice', keywords: 'command new create', shortcut: 'Alt+KeyI', icon: 'interface-add', handler: () => { alert('New invoice') }, }, { id: 'user', title: 'Switch user', keywords: 'command change log sign out in', shortcut: 'Alt+KeyU', icon: 'user-multiple', handler: () => { alert('Switch user') }, }, { id: 'theme', keywords: 'dark light mode ui', title: 'Change theme...', icon: 'file-picture', shortcut: 'Alt+KeyT', }, { id: 'dashboard', keywords: 'sections view go to visit', title: 'Open dashboard', shortcut: 'Alt+Digit1', handler: () => { alert('Open dashboard') }, }, { id: 'payments', keywords: 'sections view go to visit', title: 'Open payments', shortcut: 'Alt+Digit2', handler: () => { alert('View payments') }, }, { id: 'reports', keywords: 'sections view go to visit', title: 'Open reports', shortcut: 'Alt+Digit3', handler: () => { alert('Open reports') }, }, { id: 'settings', keywords: 'sections view go to visit', title: 'Open settings', shortcut: 'Alt+Digit4', handler: () => { alert('Open settings') }, }, ] const button = container.querySelector('nord-button') if (navigator.platform.includes('Mac')) { button.textContent = 'Open menu (⌘+K)' } button.addEventListener('click', () => { menu.show() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "PreventingOpen",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-command-menu></nord-command-menu> <nord-stack direction=\"horizontal\"> <nord-button variant=\"primary\">Open command menu</nord-button> <nord-checkbox label=\"Allow open?\" checked></nord-checkbox> </nord-stack>` const menu = container.querySelector('nord-command-menu') const button = container.querySelector('nord-button') const checkbox = container.querySelector('nord-checkbox') menu.commands = [ { id: 'consultation', title: 'Start consultation', keywords: 'command new create', shortcut: 'Alt+KeyC', section: 'Commands', handler: () => { alert('Start consultation') }, }, ] menu.addEventListener('open', (e) => { if (!checkbox.checked) { e.preventDefault() } }) button.addEventListener('click', () => { menu.show() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "SectionWithChildren",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-command-menu open></nord-command-menu> <nord-button variant=\"primary\">Open menu (Ctrl+K)</nord-button>` const menu = container.querySelector('nord-command-menu') menu.commands = [ { id: 'theme', keywords: 'dark light mode ui', title: 'Change theme...', icon: 'file-picture', shortcut: 'Alt+KeyT', section: 'Commands', }, { id: 'Light Theme', keywords: 'mode ui', title: 'Change theme to Light', icon: 'interface-mode-light', parent: 'theme', handler: () => { alert('Change to light theme') }, }, { id: 'Dark Theme', keywords: 'mode ui', title: 'Change theme to Dark', icon: 'interface-mode-dark', parent: 'theme', handler: () => { alert('Change to dark theme') }, }, ] const button = container.querySelector('nord-button') if (navigator.platform.includes('Mac')) { button.textContent = 'Open menu (⌘+K)' } button.addEventListener('click', () => { menu.show() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "WithoutCustomIcons",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-command-menu open></nord-command-menu> <nord-button variant=\"primary\">Open menu (Ctrl+K)</nord-button>` const menu = container.querySelector('nord-command-menu') menu.commands = [ { id: 'consultation', title: 'Start consultation', keywords: 'command new create', shortcut: 'Alt+KeyC', handler: () => { alert('Start consultation') }, }, { id: 'patient', title: 'New patient', keywords: 'command new create', shortcut: 'Alt+KeyP', handler: () => { alert('New patient') }, }, { id: 'appointment', title: 'New appointment', keywords: 'command new create', shortcut: 'Alt+KeyA', handler: () => { alert('New appointment') }, }, { id: 'invoice', title: 'New invoice', keywords: 'command new create', shortcut: 'Alt+KeyI', handler: () => { alert('New invoice') }, }, { id: 'user', title: 'Switch user', keywords: 'command change log sign out in', shortcut: 'Alt+KeyU', handler: () => { alert('Switch user') }, }, { id: 'theme', keywords: 'dark light mode ui', title: 'Change theme...', shortcut: 'Alt+KeyT', }, { id: 'dashboard', keywords: 'sections view go to visit', title: 'Open dashboard', shortcut: 'Alt+Digit1', handler: () => { alert('Open dashboard') }, }, { id: 'payments', keywords: 'sections view go to visit', title: 'Open payments', shortcut: 'Alt+Digit2', handler: () => { alert('View payments') }, }, { id: 'reports', keywords: 'sections view go to visit', title: 'Open reports', shortcut: 'Alt+Digit3', handler: () => { alert('Open reports') }, }, { id: 'settings', keywords: 'sections view go to visit', title: 'Open settings', shortcut: 'Alt+Digit4', handler: () => { alert('Open settings') }, }, ] const button = container.querySelector('nord-button') if (navigator.platform.includes('Mac')) { button.textContent = 'Open menu (⌘+K)' } button.addEventListener('click', () => { menu.show() }) return container }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/command-menu/CommandMenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/command-menu/CommandMenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/command-menu/CommandMenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ExitNestedOnSearch",
          "declaration": {
            "name": "ExitNestedOnSearch",
            "module": "src/command-menu/CommandMenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ExternalFiltering",
          "declaration": {
            "name": "ExternalFiltering",
            "module": "src/command-menu/CommandMenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "NoSections",
          "declaration": {
            "name": "NoSections",
            "module": "src/command-menu/CommandMenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PreventingOpen",
          "declaration": {
            "name": "PreventingOpen",
            "module": "src/command-menu/CommandMenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "SectionWithChildren",
          "declaration": {
            "name": "SectionWithChildren",
            "module": "src/command-menu/CommandMenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithoutCustomIcons",
          "declaration": {
            "name": "WithoutCustomIcons",
            "module": "src/command-menu/CommandMenu.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/command-menu/CommandMenu.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Command Menu allows users to navigate and use an app without\ntouching the mouse and helps them transform into “power users”\nwho can harness more advanced features far faster.",
          "name": "CommandMenu",
          "cssProperties": [
            {
              "description": "Controls the max inline size, or width, of the command menu.",
              "name": "--n-command-menu-inline-size",
              "default": "640px"
            },
            {
              "description": "Controls the max block size, or height, of the command menu.",
              "name": "--n-command-menu-block-size",
              "default": "290px"
            },
            {
              "description": "Controls the command menu offset from the block start, or top, of the screen.",
              "name": "--n-command-menu-block-start",
              "default": "16%"
            }
          ],
          "slots": [
            {
              "description": "Used to replace the default footer contents.",
              "name": "footer"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "inputRef",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "listRef",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "previousFocus",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "localize",
              "privacy": "private",
              "default": "new LocalizeController<'nord-command-menu'>(this)"
            },
            {
              "kind": "field",
              "name": "dismissController",
              "privacy": "private",
              "default": "new LightDismissController(this, { isOpen: () => this.open, onDismiss: () => this.close(), })"
            },
            {
              "kind": "field",
              "name": "keyboardController",
              "privacy": "private",
              "default": "new KeyboardController(this, { trigger: () => this.select(), goBack: () => this.goBack(), end: () => this.end(), start: () => this.start(), next: () => this.next(), previous: () => this.previous(), toggleOpen: () => this.toggleOpen(), })"
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Show or hide the command menu.",
              "attribute": "open",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "externalFiltering",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Use external filtering mode. When set to true, the component will not perform\ninternal text-based filtering and expects external filtering logic to be implemented.",
              "attribute": "external-filtering",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "exitNestedOnSearch",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When enabled, typing in the search input will automatically exit nested views\nto allow global search across all commands.",
              "attribute": "exit-nested-on-search",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "commands",
              "type": {
                "text": "Array<ICommandMenuAction>"
              },
              "default": "[]",
              "description": "Array of commands to be included in the menu.\nPlease see “Commands data” section for more documentation."
            },
            {
              "kind": "field",
              "name": "searchQuery",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Current search query in the command menu input."
            },
            {
              "kind": "field",
              "name": "parent",
              "type": {
                "text": "ICommandMenuAction['parent']"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "bump",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "true"
            },
            {
              "kind": "field",
              "name": "selectedIndex",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "filteredCommands",
              "type": {
                "text": "Array<ICommandMenuAction>"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "selected",
              "type": {
                "text": "ICommandMenuAction"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "show",
              "parameters": [
                {
                  "name": "options",
                  "default": "{}",
                  "type": {
                    "text": "{ parent?: string }"
                  },
                  "description": "Options for showing the menu."
                },
                {
                  "description": "Opens the menu filtered to a specific parent command.",
                  "name": "options.parent"
                }
              ],
              "description": "Show the command menu programmatically."
            },
            {
              "kind": "method",
              "name": "close",
              "description": "Close the command menu programmatically."
            },
            {
              "kind": "method",
              "name": "toggleOpen",
              "description": "Toggle the open state programmatically."
            },
            {
              "kind": "method",
              "name": "focus",
              "description": "Focus the command menu's input."
            },
            {
              "kind": "method",
              "name": "renderNoResults",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderSection",
              "privacy": "private",
              "parameters": [
                {
                  "name": "section",
                  "type": {
                    "text": "string | undefined"
                  }
                },
                {
                  "name": "commands",
                  "type": {
                    "text": "ICommandMenuAction[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleCommandsChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleBump",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "focusOnOpen",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleAnimationEnd",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleBlur",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "select",
              "privacy": "private",
              "parameters": [
                {
                  "name": "command",
                  "default": "this.selected",
                  "type": {
                    "text": "ICommandMenuAction"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "start",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "end",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "next",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "previous",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "goBack",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setParent",
              "privacy": "private",
              "parameters": [
                {
                  "name": "parent",
                  "optional": true,
                  "type": {
                    "text": "ICommandMenuAction['parent']"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setSearch",
              "privacy": "private",
              "parameters": [
                {
                  "name": "str",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "filterCommands",
              "privacy": "private"
            }
          ],
          "events": [
            {
              "name": "open",
              "type": {
                "text": "NordEvent"
              },
              "description": "The command menu was opened."
            },
            {
              "name": "close",
              "type": {
                "text": "NordEvent"
              },
              "description": "The command menu was closed."
            },
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the search input."
            },
            {
              "type": {
                "text": "SelectEvent"
              },
              "description": "User selected a command from the menu.",
              "name": "nord-select"
            }
          ],
          "attributes": [
            {
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Show or hide the command menu.",
              "fieldName": "open"
            },
            {
              "name": "external-filtering",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Use external filtering mode. When set to true, the component will not perform\ninternal text-based filtering and expects external filtering logic to be implemented.",
              "fieldName": "externalFiltering"
            },
            {
              "name": "exit-nested-on-search",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When enabled, typing in the search input will automatically exit nested views\nto allow global search across all commands.",
              "fieldName": "exitNestedOnSearch"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [
            {
              "name": "instructions",
              "description": "Instructions that offer guidance on how to use the command menu."
            },
            {
              "name": "inputLabel",
              "description": "Accessible label given to the command menu's input."
            },
            {
              "name": "footerArrowKeys",
              "description": "Describes what the arrow keys do."
            },
            {
              "name": "footerEnterKey",
              "description": "Describes what the enter key does."
            },
            {
              "name": "footerEscapeKey",
              "description": "Describes what the escape key does."
            },
            {
              "name": "footerBackspaceKey",
              "description": "Describes what the backspace key does."
            },
            {
              "name": "noResults",
              "description": "A message shown when there are no matching results."
            },
            {
              "name": "tip",
              "description": "A hint tip that describes some approaches to find a command when there are no matching results."
            },
            {
              "name": "placeholder",
              "description": "Hint text to display in the Command Menu search field."
            }
          ],
          "status": "ready",
          "category": "action",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide global and contextual keyboard shortcuts for users.\n- Make command menu available everywhere. Users must be able to bring up the command menu easily.\n- Make command menu central. Users should be able to find global shortcuts from one location.\n- Make command menu omnipotent. Give users access to every possible action.\n- Group related commands logically under sections with the section setting.\n- Use `Alt` key as the modifier, since this is less likely to clash with existing shortcuts.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t make command menu available only in certain views of the application.\n- Don’t define shortcuts such as `Ctrl+C`, since this will clash with the native \"Copy\" shortcut.\n- Don't create complex shortcuts, as users will struggle to remember them.\n- Avoid using `KeyboardEvent.key` for defining the shortcut keys.\n- Don’t use as a search field only.\n\n</div>\n\n---\n\n## Content guidelines\n\nCommand titles should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they execute a command:\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Consultation</div>\n\nAlways lead with a strong verb that encourages action. To provide enough context to user, use the {verb} + {noun} content formula:\n\n<div class=\"n-usage n-usage-do\">Open dashboard</div>\n<div class=\"n-usage n-usage-dont\">Dashboard</div>\n\nWhen writing command titles, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">New appointment</div>\n<div class=\"n-usage n-usage-dont\">New Appointment</div>\n\nAvoid unnecessary words and articles in command titles, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse ellipsis in the title when describing sections that have commands grouped inside of them:\n\n<div class=\"n-usage n-usage-do\">Change theme…</div>\n<div class=\"n-usage n-usage-dont\">Change theme</div>\n\n---\n\n## Commands data\n\nEach command in the `commands` data array must include at least an `id` and `title`. A&nbsp;command may also include properties for `section`, `icon`, `handler`, `shortcut` , `parent`, and `keywords`:\n\n| Name       | Purpose                                                                                                                                                                                                                   |\n| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `id`       | An identifier for each command, must be unique. Example: `id: \"user\"`.                                                                                                                                                    |\n| `title`    | The title shown to users. This is used when searching for a command. Example: `title: \"Change theme...\"`.                                                                                                                 |\n| `keywords` | Not visible in the user interface, but can make it easier to discover commands through search. Example: `keywords: \"command change log sign out in\"`.                                                                     |\n| `shortcut` | The keyboard shortcut. Example: `shortcut: \"Alt+KeyU\"`. See the sections [Defining Shortcuts](#defining-shortcuts) and [Choosing shortcuts](#choosing-shortcuts) below for more information.                              |\n| `section`  | Used for grouping many commands under a common header. Example: `section: \"Commands\"`.                                                                                                                                    |\n| `icon`     | A name of an icon form Nordicons to show beside the title. If not specified, default command icon will be used instead. Example: `icon: \"file-picture\"`.                                                                  |\n| `parent`   | The `id` of a parent command. This is used for nesting commands. Example: `parent: \"theme\"`.                                                                                                                              |\n| `handler`  | A function to execute when an user triggers a command. Example: `handler: () => { alert(\"Change to light theme\") }`. In cases where a command is only used as a parent command e.g. \"Change theme\", this is not required. |\n\n---\n\n## Defining shortcuts\n\nShortcuts in the Command Menu have the following form: `[modifier]+[key]`. Shortcuts are made up of a sequence of presses. A press can be as simple as a single key which matches against [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values):\n\n```js\n// Matches: event.code:\n'KeyD'\n```\n\nPresses can optionally be prefixed with **_modifiers_** which match against any valid value to [`KeyboardEvent.getModifierState()`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState).\n\n```js\n'Control+KeyD'\n'Meta+KeyD'\n'Shift+KeyD'\n'Alt+KeyD'\n'Meta+Shift+KeyD'\n```\n\nThere is also a special `$mod` modifier that makes it easy to support cross platform keybindings:\n\n- Mac: `$mod` = `Meta` (⌘)\n- Windows/Linux: `$mod` = `Control`\n\n```js\n'$mod+KeyD' // ⌘/Ctrl + D\n'$mod+Shift+KeyD' // ⌘/Ctrl + Shift + D\n```\n\nThe Command Menu itself can be opened using `⌘+k` (or `Ctrl+k` on Windows) and closed by hitting `Esc`. These are both non-configurable shortcuts in order to unify the experience across our platforms.\n\n---\n\n## Choosing shortcuts\n\nWhen choosing shortcuts, it is very important that they do not clash with native operating system or browser shortcuts.\n\nFor example, you _should not_ define a shortcut like `$mod+KeyC`, since this will clash with the native “Copy” shortcut, and will be triggered every time a user copies text in the app. Nor should you use shortcuts like `Shift+KeyA` since this will get triggered whenever a user types an uppercase “A” character. Therefore, special care and attention must be given to _each and every_ shortcut choice.\n\nIn general, we recommend using the `Alt` modifier, since this is less likely to clash with existing shortcuts. However, be aware, the `Alt` key is also used for accented characters e.g. `Alt+KeyA` produces the letter “å”. Again, it is crucial that you choose shortcuts carefully.\n\nYou should strive to choose shortcuts that are intuitive and easy to remember. The more complex a shortcut, the less likely a user is to remember it. Of course, a user can still find a command by searching the command menu, and for some users this may be their preferred way of triggering commands.\n\n---\n\n## Common keybindings\n\nKeybindings will be matched against [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) and [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values) which may have some names you don’t expect. Please note that we recommend always using `KeyboardEvent.code` for defining the keys and only using `KeyboardEvent.key` for defining modifiers.\n\n| Windows       | macOS           | key           | code                           |\n| ------------- | --------------- | ------------- | ------------------------------ |\n| N/A           | `Command` / `⌘` | `Meta`        | `MetaLeft` / `MetaRight`       |\n| `Alt`         | `Option` / `⌥`  | `Alt`         | `AltLeft` / `AltRight`         |\n| `Control`     | `Control` / `^` | `Control`     | `ControlLeft` / `ControlRight` |\n| `Shift`       | `Shift`         | `Shift`       | `ShiftLeft` / `ShiftRight`     |\n| `Space`       | `Space`         | N/A           | `Space`                        |\n| `Enter`       | `Return`        | `Enter`       | `Enter`                        |\n| `Esc`         | `Esc`           | `Escape`      | `Escape`                       |\n| `1`, `2`, etc | `1`, `2`, etc   | `1`, `2`, etc | `Digit1`, `Digit2`, etc        |\n| `a`, `b`, etc | `a`, `b`, etc   | `a`, `b`, etc | `KeyA`, `KeyB`, etc            |\n| `-`           | `-`             | `-`           | `Minus`                        |\n| `=`           | `=`             | `=`           | `Equal`                        |\n| `+`           | `+`             | `+`           | `Equal`\\*                      |\n\nIn addition to the above table, you can use [https://keycode.info/](https://keycode.info/) for checking the specific values needed. Note that some keys will have the same code as others because they appear on the same key on the keyboard. Keep in mind how this is affected by international keyboards which may have different layouts.\n\n---\n\n## Navigating with the command menu\n\n1. Use `Ctrl+K` (Windows/Linux) or `Cmd+K` (Mac) to open the command menu.\n2. Start typing the command you want to execute. The suggestions in the command menu change to match your text.\n3. Finish entering the name, or use the arrow keys to highlight the command you want from the list of suggestions.\n4. Use `Enter` to execute the chosen command.\n5. If you chose a command that has nested commands, you can use `Backspace` to return to the previous menu.\n6. When the command menu is active, you can use one of the following keyboard shortcuts to close it: `Esc`, `Ctrl+K` (Windows and Linux) or `Cmd+K` (Mac).\n",
          "examples": [],
          "dependencies": [
            "icon",
            "visually-hidden"
          ],
          "tagName": "nord-command-menu",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "CommandMenu",
            "module": "src/command-menu/CommandMenu.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-command-menu",
          "declaration": {
            "name": "CommandMenu",
            "module": "src/command-menu/CommandMenu.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/command-menu/CommandMenuAction.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Command Menu Action displays a single action that can be executed by the user. For usage examples, please see Command Menu component.",
          "name": "CommandMenuAction",
          "members": [
            {
              "kind": "field",
              "name": "direction",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "command",
              "type": {
                "text": "ICommandMenuAction"
              },
              "attribute": "command"
            },
            {
              "kind": "field",
              "name": "selected",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "attribute": "selected"
            },
            {
              "kind": "method",
              "name": "ensureInView",
              "privacy": "protected",
              "description": "Scroll to show element"
            },
            {
              "kind": "method",
              "name": "getIconName",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderShortcut",
              "privacy": "private"
            }
          ],
          "attributes": [
            {
              "name": "command",
              "type": {
                "text": "ICommandMenuAction"
              },
              "fieldName": "command"
            },
            {
              "name": "selected",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "fieldName": "selected"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "internal",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide global and contextual keyboard shortcuts for users.\n- Make command menu available everywhere. Users must be able to bring up the command menu easily.\n- Make command menu central. Users should be able to find global shortcuts from one location.\n- Make command menu omnipotent. Give users access to every possible action.\n- Group related commands logically under sections with the section setting.\n- Use `Alt` key as the modifier, since this is less likely to clash with existing shortcuts.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t make command menu available only in certain views of the application.\n- Don’t define shortcuts such as `Ctrl+C`, since this will clash with the native \"Copy\" shortcut.\n- Don't create complex shortcuts, as users will struggle to remember them.\n- Avoid using `KeyboardEvent.key` for defining the shortcut keys.\n- Don’t use as a search field only.\n\n</div>\n\n---\n\n## Content guidelines\n\nCommand titles should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they execute a command:\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Consultation</div>\n\nAlways lead with a strong verb that encourages action. To provide enough context to user, use the {verb} + {noun} content formula:\n\n<div class=\"n-usage n-usage-do\">Open dashboard</div>\n<div class=\"n-usage n-usage-dont\">Dashboard</div>\n\nWhen writing command titles, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">New appointment</div>\n<div class=\"n-usage n-usage-dont\">New Appointment</div>\n\nAvoid unnecessary words and articles in command titles, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse ellipsis in the title when describing sections that have commands grouped inside of them:\n\n<div class=\"n-usage n-usage-do\">Change theme…</div>\n<div class=\"n-usage n-usage-dont\">Change theme</div>\n\n---\n\n## Commands data\n\nEach command in the `commands` data array must include at least an `id` and `title`. A&nbsp;command may also include properties for `section`, `icon`, `handler`, `shortcut` , `parent`, and `keywords`:\n\n| Name       | Purpose                                                                                                                                                                                                                   |\n| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `id`       | An identifier for each command, must be unique. Example: `id: \"user\"`.                                                                                                                                                    |\n| `title`    | The title shown to users. This is used when searching for a command. Example: `title: \"Change theme...\"`.                                                                                                                 |\n| `keywords` | Not visible in the user interface, but can make it easier to discover commands through search. Example: `keywords: \"command change log sign out in\"`.                                                                     |\n| `shortcut` | The keyboard shortcut. Example: `shortcut: \"Alt+KeyU\"`. See the sections [Defining Shortcuts](#defining-shortcuts) and [Choosing shortcuts](#choosing-shortcuts) below for more information.                              |\n| `section`  | Used for grouping many commands under a common header. Example: `section: \"Commands\"`.                                                                                                                                    |\n| `icon`     | A name of an icon form Nordicons to show beside the title. If not specified, default command icon will be used instead. Example: `icon: \"file-picture\"`.                                                                  |\n| `parent`   | The `id` of a parent command. This is used for nesting commands. Example: `parent: \"theme\"`.                                                                                                                              |\n| `handler`  | A function to execute when an user triggers a command. Example: `handler: () => { alert(\"Change to light theme\") }`. In cases where a command is only used as a parent command e.g. \"Change theme\", this is not required. |\n\n---\n\n## Defining shortcuts\n\nShortcuts in the Command Menu have the following form: `[modifier]+[key]`. Shortcuts are made up of a sequence of presses. A press can be as simple as a single key which matches against [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values):\n\n```js\n// Matches: event.code:\n'KeyD'\n```\n\nPresses can optionally be prefixed with **_modifiers_** which match against any valid value to [`KeyboardEvent.getModifierState()`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState).\n\n```js\n'Control+KeyD'\n'Meta+KeyD'\n'Shift+KeyD'\n'Alt+KeyD'\n'Meta+Shift+KeyD'\n```\n\nThere is also a special `$mod` modifier that makes it easy to support cross platform keybindings:\n\n- Mac: `$mod` = `Meta` (⌘)\n- Windows/Linux: `$mod` = `Control`\n\n```js\n'$mod+KeyD' // ⌘/Ctrl + D\n'$mod+Shift+KeyD' // ⌘/Ctrl + Shift + D\n```\n\nThe Command Menu itself can be opened using `⌘+k` (or `Ctrl+k` on Windows) and closed by hitting `Esc`. These are both non-configurable shortcuts in order to unify the experience across our platforms.\n\n---\n\n## Choosing shortcuts\n\nWhen choosing shortcuts, it is very important that they do not clash with native operating system or browser shortcuts.\n\nFor example, you _should not_ define a shortcut like `$mod+KeyC`, since this will clash with the native “Copy” shortcut, and will be triggered every time a user copies text in the app. Nor should you use shortcuts like `Shift+KeyA` since this will get triggered whenever a user types an uppercase “A” character. Therefore, special care and attention must be given to _each and every_ shortcut choice.\n\nIn general, we recommend using the `Alt` modifier, since this is less likely to clash with existing shortcuts. However, be aware, the `Alt` key is also used for accented characters e.g. `Alt+KeyA` produces the letter “å”. Again, it is crucial that you choose shortcuts carefully.\n\nYou should strive to choose shortcuts that are intuitive and easy to remember. The more complex a shortcut, the less likely a user is to remember it. Of course, a user can still find a command by searching the command menu, and for some users this may be their preferred way of triggering commands.\n\n---\n\n## Common keybindings\n\nKeybindings will be matched against [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) and [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values) which may have some names you don’t expect. Please note that we recommend always using `KeyboardEvent.code` for defining the keys and only using `KeyboardEvent.key` for defining modifiers.\n\n| Windows       | macOS           | key           | code                           |\n| ------------- | --------------- | ------------- | ------------------------------ |\n| N/A           | `Command` / `⌘` | `Meta`        | `MetaLeft` / `MetaRight`       |\n| `Alt`         | `Option` / `⌥`  | `Alt`         | `AltLeft` / `AltRight`         |\n| `Control`     | `Control` / `^` | `Control`     | `ControlLeft` / `ControlRight` |\n| `Shift`       | `Shift`         | `Shift`       | `ShiftLeft` / `ShiftRight`     |\n| `Space`       | `Space`         | N/A           | `Space`                        |\n| `Enter`       | `Return`        | `Enter`       | `Enter`                        |\n| `Esc`         | `Esc`           | `Escape`      | `Escape`                       |\n| `1`, `2`, etc | `1`, `2`, etc   | `1`, `2`, etc | `Digit1`, `Digit2`, etc        |\n| `a`, `b`, etc | `a`, `b`, etc   | `a`, `b`, etc | `KeyA`, `KeyB`, etc            |\n| `-`           | `-`             | `-`           | `Minus`                        |\n| `=`           | `=`             | `=`           | `Equal`                        |\n| `+`           | `+`             | `+`           | `Equal`\\*                      |\n\nIn addition to the above table, you can use [https://keycode.info/](https://keycode.info/) for checking the specific values needed. Note that some keys will have the same code as others because they appear on the same key on the keyboard. Keep in mind how this is affected by international keyboards which may have different layouts.\n\n---\n\n## Navigating with the command menu\n\n1. Use `Ctrl+K` (Windows/Linux) or `Cmd+K` (Mac) to open the command menu.\n2. Start typing the command you want to execute. The suggestions in the command menu change to match your text.\n3. Finish entering the name, or use the arrow keys to highlight the command you want from the list of suggestions.\n4. Use `Enter` to execute the chosen command.\n5. If you chose a command that has nested commands, you can use `Backspace` to return to the previous menu.\n6. When the command menu is active, you can use one of the following keyboard shortcuts to close it: `Esc`, `Ctrl+K` (Windows and Linux) or `Cmd+K` (Mac).\n",
          "examples": [],
          "dependencies": [
            "icon",
            "visually-hidden"
          ],
          "tagName": "nord-command-menu-action",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "CommandMenuAction",
            "module": "src/command-menu/CommandMenuAction.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-command-menu-action",
          "declaration": {
            "name": "CommandMenuAction",
            "module": "src/command-menu/CommandMenuAction.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/command-menu/ICommandMenuAction.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "src/command-menu/KeyboardController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "KeyboardController",
          "members": [
            {
              "kind": "field",
              "name": "globalShortcuts",
              "type": {
                "text": "ShortcutController"
              },
              "privacy": "private",
              "default": "new ShortcutController(host, { '$mod+k': preventDefault(actions.toggleOpen) })"
            },
            {
              "kind": "field",
              "name": "navigationShortcuts",
              "type": {
                "text": "ShortcutController"
              },
              "privacy": "private",
              "default": "new ShortcutController( host, { Enter: preventDefault(actions.trigger), Backspace: actions.goBack, // we don't want to prevent default, since that would stop backspace deleting chars End: preventDefault(actions.end), Home: preventDefault(actions.start), ArrowDown: preventDefault(actions.next), ArrowUp: preventDefault(actions.previous), }, host, )"
            },
            {
              "kind": "field",
              "name": "commandShortcuts",
              "type": {
                "text": "ShortcutController"
              },
              "privacy": "private",
              "default": "new ShortcutController(host)"
            },
            {
              "kind": "method",
              "name": "registerCommandShortcuts"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KeyboardController",
          "declaration": {
            "name": "KeyboardController",
            "module": "src/command-menu/KeyboardController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/command-menu/SelectEvent.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "SelectEvent",
          "members": [
            {
              "kind": "field",
              "name": "eventName",
              "type": {
                "text": "string"
              },
              "static": true,
              "default": "'nord-select'"
            }
          ],
          "superclass": {
            "name": "NordEvent",
            "module": "/src/common/events.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SelectEvent",
          "declaration": {
            "name": "SelectEvent",
            "module": "src/command-menu/SelectEvent.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/command-menu/localization.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "commandMenuLocalization",
          "type": {
            "text": "object"
          },
          "default": "{ instructions: 'Press \\'Enter\\' to confirm your input or \\'Escape\\' to cancel', inputLabel: 'Type the name of a command to run.', footerArrowKeys: 'Navigate', footerEnterKey: 'Select', footerEscapeKey: 'Esc to dismiss', footerBackspaceKey: 'Move to parent', noResults: (searchTerm: string) => `No results for “${searchTerm}”`, tip: 'Search tips: some search terms require an exact match. Try typing the entire command name, or use a different word or phrase.', placeholder: 'Type a command or search…', }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "commandMenuLocalization",
            "module": "src/command-menu/localization.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/attribute.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "add",
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "Element"
              }
            },
            {
              "name": "attr",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "token",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Carefully adds a token to a space-separated attribute\nSimilar to classList, but for any attribute."
        },
        {
          "kind": "function",
          "name": "remove",
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "Element"
              }
            },
            {
              "name": "attr",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "token",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Carefully removes a token from a space-separated attribute.\nSimilar to classList, but for any attribute."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "add",
          "declaration": {
            "name": "add",
            "module": "src/common/attribute.ts"
          }
        },
        {
          "kind": "js",
          "name": "remove",
          "declaration": {
            "name": "remove",
            "module": "src/common/attribute.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/collection.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "groupBy",
          "parameters": [
            {
              "name": "array",
              "type": {
                "text": "Array<TObject>"
              },
              "description": "the collection of objects to group"
            },
            {
              "name": "key",
              "type": {
                "text": "TKey"
              },
              "description": "the property to group by"
            }
          ],
          "description": "Groups an array objects by property value",
          "return": {
            "type": {
              "text": ""
            }
          }
        },
        {
          "kind": "function",
          "name": "chunk",
          "return": {
            "type": {
              "text": ""
            }
          },
          "parameters": [
            {
              "name": "array",
              "type": {
                "text": "T[]"
              },
              "description": "The array to split"
            },
            {
              "name": "chunkSize",
              "type": {
                "text": "number"
              },
              "description": "The size of each chunk"
            }
          ],
          "description": "Split an array into chunks of the given size"
        },
        {
          "kind": "function",
          "name": "mapWithOffset",
          "return": {
            "type": {
              "text": ""
            }
          },
          "parameters": [
            {
              "name": "array",
              "type": {
                "text": "T[]"
              },
              "description": "The array to map over"
            },
            {
              "name": "startingOffset",
              "type": {
                "text": "number"
              },
              "description": "The starting offset"
            },
            {
              "name": "mapFn",
              "type": {
                "text": "(item: T, i: number) => U"
              },
              "description": "The mapping function"
            }
          ],
          "description": "maps over an array, starting at the given offset and wrapping around."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "groupBy",
          "declaration": {
            "name": "groupBy",
            "module": "src/common/collection.ts"
          }
        },
        {
          "kind": "js",
          "name": "chunk",
          "declaration": {
            "name": "chunk",
            "module": "src/common/collection.ts"
          }
        },
        {
          "kind": "js",
          "name": "mapWithOffset",
          "declaration": {
            "name": "mapWithOffset",
            "module": "src/common/collection.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/dates.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "createDate",
          "return": {
            "type": {
              "text": "Date | undefined"
            }
          },
          "parameters": [
            {
              "name": "year",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "month",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "day",
              "type": {
                "text": "string"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "parseISODate",
          "return": {
            "type": {
              "text": "Date | undefined"
            }
          },
          "parameters": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "description": "date string in ISO format YYYY-MM-DD"
            }
          ]
        },
        {
          "kind": "function",
          "name": "printISODate",
          "return": {
            "type": {
              "text": "string"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            }
          ],
          "description": "print date in format YYYY-MM-DD"
        },
        {
          "kind": "function",
          "name": "getDayNames",
          "parameters": [
            {
              "name": "locale",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "weekday",
              "type": {
                "text": "Exclude<Intl.DateTimeFormatOptions['weekday'], undefined>"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "getMonthNames",
          "parameters": [
            {
              "name": "locale",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "month",
              "type": {
                "text": "Exclude<Intl.DateTimeFormatOptions['month'], undefined>"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "isEqualMonth",
          "return": {
            "type": {
              "text": "boolean"
            }
          },
          "parameters": [
            {
              "name": "a",
              "optional": true,
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "b",
              "optional": true,
              "type": {
                "text": "Date"
              }
            }
          ],
          "description": "Compare if two dates are in the same month of the same year."
        },
        {
          "kind": "function",
          "name": "isEqual",
          "return": {
            "type": {
              "text": "boolean"
            }
          },
          "parameters": [
            {
              "name": "a",
              "optional": true,
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "b",
              "optional": true,
              "type": {
                "text": "Date"
              }
            }
          ],
          "description": "Compare if two dates are equal in terms of day, month, and year"
        },
        {
          "kind": "function",
          "name": "addDays",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "days",
              "type": {
                "text": "number"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "addMonths",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "months",
              "type": {
                "text": "number"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "addYears",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "years",
              "type": {
                "text": "number"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "startOfWeek",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "firstDayOfWeek",
              "default": "DaysOfWeek.Monday",
              "type": {
                "text": "DaysOfWeek"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "endOfWeek",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "firstDayOfWeek",
              "default": "DaysOfWeek.Monday",
              "type": {
                "text": "DaysOfWeek"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "startOfMonth",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "endOfMonth",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "setMonth",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "month",
              "type": {
                "text": "number"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "setYear",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "year",
              "type": {
                "text": "number"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "clamp",
          "return": {
            "type": {
              "text": "Date"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "min",
              "optional": true,
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "max",
              "optional": true,
              "type": {
                "text": "Date"
              }
            }
          ],
          "description": "Ensures date is within range, returns min or max if out of bounds"
        },
        {
          "kind": "function",
          "name": "inRange",
          "return": {
            "type": {
              "text": "boolean"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "min",
              "optional": true,
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "max",
              "optional": true,
              "type": {
                "text": "Date"
              }
            }
          ],
          "description": "Check if date is within a min and max"
        },
        {
          "kind": "function",
          "name": "getViewOfMonth",
          "return": {
            "type": {
              "text": "Date[]"
            }
          },
          "parameters": [
            {
              "name": "date",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "firstDayOfWeek",
              "default": "DaysOfWeek.Monday",
              "type": {
                "text": "DaysOfWeek"
              }
            }
          ],
          "description": "given a date, return an array of dates from a calendar perspective"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "createDate",
          "declaration": {
            "name": "createDate",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "parseISODate",
          "declaration": {
            "name": "parseISODate",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "printISODate",
          "declaration": {
            "name": "printISODate",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "getDayNames",
          "declaration": {
            "name": "getDayNames",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "getMonthNames",
          "declaration": {
            "name": "getMonthNames",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "isEqualMonth",
          "declaration": {
            "name": "isEqualMonth",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "isEqual",
          "declaration": {
            "name": "isEqual",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "addDays",
          "declaration": {
            "name": "addDays",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "addMonths",
          "declaration": {
            "name": "addMonths",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "addYears",
          "declaration": {
            "name": "addYears",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "startOfWeek",
          "declaration": {
            "name": "startOfWeek",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "endOfWeek",
          "declaration": {
            "name": "endOfWeek",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "startOfMonth",
          "declaration": {
            "name": "startOfMonth",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "endOfMonth",
          "declaration": {
            "name": "endOfMonth",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "setMonth",
          "declaration": {
            "name": "setMonth",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "setYear",
          "declaration": {
            "name": "setYear",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "clamp",
          "declaration": {
            "name": "clamp",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "inRange",
          "declaration": {
            "name": "inRange",
            "module": "src/common/dates.ts"
          }
        },
        {
          "kind": "js",
          "name": "getViewOfMonth",
          "declaration": {
            "name": "getViewOfMonth",
            "module": "src/common/dates.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/events.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A base class for events which defaults to bubbling and composed",
          "name": "NordEvent",
          "superclass": {
            "name": "Event",
            "module": "src/common/events.ts"
          }
        },
        {
          "kind": "function",
          "name": "oneEvent",
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "HTMLElement"
              }
            },
            {
              "name": "type",
              "type": {
                "text": "K"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "transition",
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "HTMLElement"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "animation",
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "HTMLElement"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "NordEvent",
          "declaration": {
            "name": "NordEvent",
            "module": "src/common/events.ts"
          }
        },
        {
          "kind": "js",
          "name": "oneEvent",
          "declaration": {
            "name": "oneEvent",
            "module": "src/common/events.ts"
          }
        },
        {
          "kind": "js",
          "name": "transition",
          "declaration": {
            "name": "transition",
            "module": "src/common/events.ts"
          }
        },
        {
          "kind": "js",
          "name": "animation",
          "declaration": {
            "name": "animation",
            "module": "src/common/events.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/focus.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "getFocusedElement",
          "return": {
            "type": {
              "text": "Element | undefined"
            }
          },
          "parameters": [
            {
              "name": "root",
              "type": {
                "text": "Document | ShadowRoot"
              }
            }
          ],
          "description": "Gets the currently focused element, taking shadow roots into account."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "getFocusedElement",
          "declaration": {
            "name": "getFocusedElement",
            "module": "src/common/focus.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/form.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "getSubmitButton",
          "return": {
            "type": {
              "text": "HTMLButtonElement | null"
            }
          },
          "parameters": [
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement"
              }
            }
          ],
          "description": "Finds a form's submit button. First looking for a button inside form,\nand then looking for a button whose form attribute is equal to the ID of the form."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "getSubmitButton",
          "declaration": {
            "name": "getSubmitButton",
            "module": "src/common/form.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/fsm.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "fsm",
          "parameters": [
            {
              "name": "config",
              "type": {
                "text": "TTransitions"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "fsm",
          "declaration": {
            "name": "fsm",
            "module": "src/common/fsm.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/inert.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "setInertAttributes",
          "parameters": [
            {
              "name": "elements",
              "type": {
                "text": "Element[]"
              },
              "description": "The elements to set or remove the `inert` attribute on."
            },
            {
              "name": "enabled",
              "type": {
                "text": "boolean"
              },
              "description": "Whether to set or remove the `inert` attribute."
            }
          ],
          "description": "Set or remove the `inert` attribute on all given elements."
        },
        {
          "kind": "function",
          "name": "getElementsAround",
          "return": {
            "type": {
              "text": "Element[]"
            }
          },
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "Element"
              }
            }
          ],
          "description": "Get all siblings of an element, including the siblings of its parents.\nUse this to find all elements that should be inert when a modal is open.\nAnd then use `setInertAttributes` to set or remove the `inert` attribute\non all of them."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "setInertAttributes",
          "declaration": {
            "name": "setInertAttributes",
            "module": "src/common/inert.ts"
          }
        },
        {
          "kind": "js",
          "name": "getElementsAround",
          "declaration": {
            "name": "getElementsAround",
            "module": "src/common/inert.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/input.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "cleanValue",
          "return": {
            "type": {
              "text": "string"
            }
          },
          "parameters": [
            {
              "name": "inputEl",
              "type": {
                "text": "HTMLInputElement"
              }
            },
            {
              "name": "regex",
              "type": {
                "text": "RegExp"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "cleanValue",
          "declaration": {
            "name": "cleanValue",
            "module": "src/common/input.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/number.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "wrap",
          "parameters": [
            {
              "name": "val",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "min",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "max",
              "type": {
                "text": "number"
              }
            }
          ],
          "description": "Wraps a value so that it always falls within min/max,\nwhere a value greater than max gets set to min, and vice versa"
        },
        {
          "kind": "function",
          "name": "range",
          "parameters": [
            {
              "name": "from",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "to",
              "type": {
                "text": "number"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "clamp",
          "parameters": [
            {
              "name": "value",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "min",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "max",
              "type": {
                "text": "number"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "wrap",
          "declaration": {
            "name": "wrap",
            "module": "src/common/number.ts"
          }
        },
        {
          "kind": "js",
          "name": "range",
          "declaration": {
            "name": "range",
            "module": "src/common/number.ts"
          }
        },
        {
          "kind": "js",
          "name": "clamp",
          "declaration": {
            "name": "clamp",
            "module": "src/common/number.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/portal.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "createPortal",
          "parameters": [
            {
              "name": "src",
              "type": {
                "text": "Node"
              }
            },
            {
              "name": "dest",
              "type": {
                "text": "Node"
              }
            }
          ],
          "description": "Creates a \"portal\" for transporting an element from one location to another.\nThe element gets moved to its destination on open(),\nand restored to its original location on close()."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "createPortal",
          "declaration": {
            "name": "createPortal",
            "module": "src/common/portal.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/positioning.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "logicalToPhysical",
          "return": {
            "type": {
              "text": "Side"
            }
          },
          "parameters": [
            {
              "name": "logicalSide",
              "type": {
                "text": "LogicalSide"
              }
            }
          ],
          "description": "Converts a single logical position to a physical position"
        },
        {
          "kind": "function",
          "name": "logicalToPhysical",
          "return": {
            "type": {
              "text": "Placement"
            }
          },
          "parameters": [
            {
              "name": "logicalSide",
              "type": {
                "text": "LogicalSide"
              }
            },
            {
              "name": "alignment",
              "type": {
                "text": "Alignment"
              }
            },
            {
              "name": "dir",
              "type": {
                "text": "Direction"
              }
            }
          ],
          "description": "Converts a logical side and alignment to floating-ui compatible placement"
        },
        {
          "kind": "function",
          "name": "logicalToPhysical",
          "parameters": [
            {
              "name": "logicalSide",
              "type": {
                "text": "LogicalSide"
              }
            },
            {
              "name": "alignment",
              "optional": true,
              "type": {
                "text": "Alignment"
              }
            },
            {
              "name": "dir",
              "optional": true,
              "type": {
                "text": "Direction"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "logicalToPhysical",
          "declaration": {
            "name": "logicalToPhysical",
            "module": "src/common/positioning.ts"
          }
        },
        {
          "kind": "js",
          "name": "logicalToPhysical",
          "declaration": {
            "name": "logicalToPhysical",
            "module": "src/common/positioning.ts"
          }
        },
        {
          "kind": "js",
          "name": "logicalToPhysical",
          "declaration": {
            "name": "logicalToPhysical",
            "module": "src/common/positioning.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/ref.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "mergeRefs",
          "return": {
            "type": {
              "text": "RefCallback"
            }
          },
          "parameters": [
            {
              "name": "refs",
              "type": {
                "text": "Ref[]"
              }
            }
          ],
          "description": "Creates a ref callback which will assign the element to every given ref"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "mergeRefs",
          "declaration": {
            "name": "mergeRefs",
            "module": "src/common/ref.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/storage.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "storage",
          "parameters": [
            {
              "name": "key",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "defaultValue",
              "type": {
                "text": "T"
              }
            },
            {
              "name": "serialize",
              "default": "JSON.stringify",
              "type": {
                "text": "(value: T) => string"
              }
            },
            {
              "name": "deserialize",
              "default": "JSON.parse",
              "type": {
                "text": "(value: string) => T"
              }
            }
          ],
          "description": "Thin wrapper around local storage which simplifies (de)serialization and default values.\nBy default, (de)serializes as JSON."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "storage",
          "declaration": {
            "name": "storage",
            "module": "src/common/storage.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/date-picker/DatePicker.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Date Picker', component: 'nord-date-picker', tags: ['autodocs'], argTypes: { value: { control: 'text' }, open: { control: 'boolean' }, min: { control: 'text', description: 'ISO-8601 format: YYYY-MM-DD' }, max: { control: 'text', description: 'ISO-8601 format: YYYY-MM-DD' }, today: { control: 'text' }, firstDayOfWeek: { control: 'text' }, expand: { control: 'boolean' }, size: { control: 'select', options: ['s', 'm', 'l'], }, label: { control: 'text' }, hint: { control: 'text' }, hideLabel: { control: 'boolean' }, placeholder: { control: 'text' }, error: { control: 'text' }, required: { control: 'boolean' }, hideRequired: { control: 'boolean' }, readonly: { control: 'boolean' }, disabled: { control: 'boolean' }, name: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { open: false, expand: false, size: 'm', hideLabel: false, required: false, hideRequired: false, readonly: false, disabled: false, }, render: args => html` <nord-date-picker value=${args.value || nothing} ?open=${args.open} min=${args.min || nothing} max=${args.max || nothing} today=${args.today || nothing} first-day-of-week=${args.firstDayOfWeek || nothing} ?expand=${args.expand} size=${args.size} label=${args.label || nothing} hint=${args.hint || nothing} ?hide-label=${args.hideLabel} placeholder=${args.placeholder || nothing} error=${args.error || nothing} ?required=${args.required} ?hide-required=${args.hideRequired} ?readonly=${args.readonly} ?disabled=${args.disabled} name=${args.name || nothing}></nord-date-picker> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-date-picker label=\"Label\" value=\"2021-01-13\"></nord-date-picker>`, }"
        },
        {
          "kind": "variable",
          "name": "ChangeFirstDayOfWeek",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-date-picker label=\"Label\" first-day-of-week=\"0\"></nord-date-picker>`, }"
        },
        {
          "kind": "variable",
          "name": "ChangeToday",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-date-picker label=\"Label\" value=\"2025-01-03\" today=\"2026-03-06\"></nord-date-picker> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomizingDateFormat",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-date-picker label=\"US date format\" value=\"2021-01-01\"></nord-date-picker>` const picker = container.querySelector('nord-date-picker') const DATE_FORMAT_US = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/ picker.dateAdapter = { parse(value = '', createDate) { const matches = value.match(DATE_FORMAT_US) return matches ? createDate(matches[3], matches[1], matches[2]) : undefined }, format(date) { return `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()}` }, } return container }, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-date-picker label=\"Label\" value=\"2021-01-01\" disabled></nord-date-picker>`, }"
        },
        {
          "kind": "variable",
          "name": "DisablingDays",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-date-picker label=\"Weekends disallowed\"></nord-date-picker>` const picker = container.querySelector('nord-date-picker') picker.isDateDisabled = function isWeekend(date) { return date.getDay() === 0 || date.getDay() === 6 } return container }, }"
        },
        {
          "kind": "variable",
          "name": "Expanded",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-date-picker label=\"Label\" expand></nord-date-picker>`, }"
        },
        {
          "kind": "variable",
          "name": "HiddenLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-date-picker label=\"Date\" placeholder=\"Type date here\" expand hide-label></nord-date-picker> `, }"
        },
        {
          "kind": "variable",
          "name": "HighlightingDays",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-date-picker label=\"Label\" value=\"2022-01-12\"></nord-date-picker>` const picker = container.querySelector('nord-date-picker') // as an example, highlight every sixth day picker.isDateHighlighted = (date) => { return date.getDate() % 6 === 0 ? 'fully booked' : false } return container }, }"
        },
        {
          "kind": "variable",
          "name": "Readonly",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-date-picker label=\"Label\" value=\"2021-01-13\" readonly></nord-date-picker>`, }"
        },
        {
          "kind": "variable",
          "name": "Required",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-date-picker label=\"Required\" required value=\"2021-01-13\"></nord-date-picker> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-date-picker size=\"s\" label=\"Date\" placeholder=\"2021-01-13\"></nord-date-picker> <nord-date-picker size=\"m\" label=\"Date\" placeholder=\"2021-01-13\"></nord-date-picker> <nord-date-picker size=\"l\" label=\"Date\" placeholder=\"2021-01-13\"></nord-date-picker> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingMinMax",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-date-picker label=\"Label\" value=\"2021-02-01\" min=\"2021-01-15\" max=\"2021-03-15\"></nord-date-picker> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingShowMethod",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-date-picker label=\"Label\"></nord-date-picker>` customElements.whenDefined('nord-date-picker').then(() => { const picker = container.querySelector('nord-date-picker') picker.show() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Validation",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-date-picker label=\"Choose date\" placeholder=\"mm/dd/yyyy\" required></nord-date-picker>` const picker = container.querySelector('nord-date-picker') const DATE_FORMAT_US = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/ function checkDateFormat(value = '') { const matches = value.match(DATE_FORMAT_US) return matches } function checkInputValidity() { const inputValue = picker.value != '' && checkDateFormat(picker.rawValue) const badInput = picker.rawValue && !checkDateFormat(picker.rawValue) const valueMissing = picker.required && !picker.rawValue if (inputValue) { console.log('Valid date:', picker.value) picker.error = '' } else if (badInput) { picker.error = 'Please enter a date in the format mm/dd/yyyy' } else if (valueMissing) { picker.error = 'This field is required' } } picker.dateAdapter = { parse(value = '', createDate) { const matches = checkDateFormat(value) return matches ? createDate(matches[3], matches[1], matches[2]) : undefined }, format(date) { return `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()}` }, } picker.addEventListener('input', () => { checkInputValidity() }) picker.addEventListener('change', () => { checkInputValidity() }) picker.addEventListener('blur', () => { checkInputValidity() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-date-picker label=\"Label\" expand> <div slot=\"hint\"> Hint is an accessible way to provide <strong>additional information</strong> that might help the user </div> </nord-date-picker> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-date-picker> <div slot=\"label\">Label <span style=\"color: var(--n-color-status-success)\">with color</span></div> </nord-date-picker> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-date-picker label=\"Label\" hint=\"Hint is an accessible way to provide additional information that might help the user\" expand ></nord-date-picker> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAPlaceholder",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-date-picker label=\"Date\" placeholder=\"e.g. 2020-01-01\"></nord-date-picker> `, }"
        },
        {
          "kind": "variable",
          "name": "InsideContainerQuery",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style> .container-query-wrapper { container-type: inline-size; border: 2px dashed var(--n-color-border); padding: var(--n-space-m); max-inline-size: 600px; margin-inline: auto; } .container-query-label { font-size: var(--n-font-size-s); color: var(--n-color-text-weaker); margin-block-end: var(--n-space-s); } </style> <p class=\"container-query-label\"> This wrapper has <code>container-type: inline-size</code> which creates a new containing block. The date picker calendar should still open in the correct position. </p> <div class=\"container-query-wrapper\"> <nord-date-picker label=\"Date\" value=\"2021-01-13\"></nord-date-picker> </div> `, }"
        },
        {
          "kind": "variable",
          "name": "WithError",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-date-picker label=\"Date of birth\" error=\"This field is required\"></nord-date-picker> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ChangeFirstDayOfWeek",
          "declaration": {
            "name": "ChangeFirstDayOfWeek",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ChangeToday",
          "declaration": {
            "name": "ChangeToday",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomizingDateFormat",
          "declaration": {
            "name": "CustomizingDateFormat",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "DisablingDays",
          "declaration": {
            "name": "DisablingDays",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Expanded",
          "declaration": {
            "name": "Expanded",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HiddenLabel",
          "declaration": {
            "name": "HiddenLabel",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HighlightingDays",
          "declaration": {
            "name": "HighlightingDays",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Readonly",
          "declaration": {
            "name": "Readonly",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingMinMax",
          "declaration": {
            "name": "UsingMinMax",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingShowMethod",
          "declaration": {
            "name": "UsingShowMethod",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Validation",
          "declaration": {
            "name": "Validation",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexHint",
          "declaration": {
            "name": "WithAComplexHint",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexLabel",
          "declaration": {
            "name": "WithAComplexLabel",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAHint",
          "declaration": {
            "name": "WithAHint",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAPlaceholder",
          "declaration": {
            "name": "WithAPlaceholder",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InsideContainerQuery",
          "declaration": {
            "name": "InsideContainerQuery",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithError",
          "declaration": {
            "name": "WithError",
            "module": "src/date-picker/DatePicker.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/date-picker/DatePicker.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "\nDate Picker allows user to enter a date either through text input,\nor by choosing a date from the calendar. Please note that the date\nmust be passed in ISO-8601 format: YYYY-MM-DD.",
          "name": "DatePicker",
          "cssProperties": [
            {
              "description": "Controls the text color of the label, using our [color tokens](/tokens/#color).",
              "name": "--n-label-color",
              "default": "var(--n-color-text)"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "toggleButton",
              "type": {
                "text": "Button"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "closeButton",
              "type": {
                "text": "HTMLButtonElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "calendar",
              "type": {
                "text": "Calendar"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "popout",
              "type": {
                "text": "Popout"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "swipe",
              "privacy": "private",
              "default": "new SwipeController(this, { target: () => this.popout, matchesGesture: isDownwardsSwipe, onSwipeEnd: () => this.hide(), })"
            },
            {
              "kind": "field",
              "name": "localize",
              "privacy": "private",
              "default": "new LocalizeController<'nord-date-picker'>(this, { onLangChange: () => this.createDateFormatters(), })"
            },
            {
              "kind": "field",
              "name": "dateFormatLong",
              "type": {
                "text": "Intl.DateTimeFormat"
              },
              "privacy": "private",
              "description": "Whilst dateAdapter is used for handling the formatting/parsing dates in the input,\nthese are used to format dates exclusively for the benefit of screen readers.\n\nWe prefer DateTimeFormat over date.toLocaleDateString, as the former has\nbetter performance when formatting large number of dates. See:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString#Performance"
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Date value. Must be in IS0-8601 format: YYYY-MM-DD.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "internalError",
              "type": {
                "text": "string | undefined"
              },
              "description": "Internal validation error message. Set automatically when min/max validation fails.\nThis is a read-only property that's managed by the component."
            },
            {
              "kind": "field",
              "name": "valueAsDate",
              "type": {
                "text": "Date | undefined"
              },
              "description": "Get/set the value of the picker as a Date object."
            },
            {
              "kind": "field",
              "name": "valueAsNumber",
              "type": {
                "text": "number"
              },
              "description": "Get/set the value of the picker as the number of milliseconds elapsed since the UNIX epoch."
            },
            {
              "kind": "field",
              "name": "rawValue",
              "type": {
                "text": "string | undefined"
              },
              "description": "Get the raw value of the input field without date formatting. This is a read-only property."
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether date picker dialog is open or not.",
              "attribute": "open",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "min",
              "type": {
                "text": "string | undefined"
              },
              "description": "Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the max property.",
              "attribute": "min",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "max",
              "type": {
                "text": "string | undefined"
              },
              "description": "Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the min property.",
              "attribute": "max",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "today",
              "type": {
                "text": "string | undefined"
              },
              "description": "The date that is considered today. Must be in IS0-8601 format: YYYY-MM-DD.\nIf not set, the current local date of the user is used.",
              "attribute": "today",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "firstDayOfWeek",
              "type": {
                "text": "DaysOfWeek"
              },
              "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
              "attribute": "first-day-of-week",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "dateAdapter",
              "type": {
                "text": "DateAdapter"
              },
              "default": "isoAdapter",
              "description": "Date adapter, for custom parsing/formatting.\nMust be object with a `parse` function which accepts a `string` and returns a `Date`,\nand a `format` function which accepts a `Date` and returns a `string`.\nDefault is IS0-8601 parsing and formatting."
            },
            {
              "kind": "field",
              "name": "isDateDisabled",
              "type": {
                "text": "DatePredicate"
              },
              "default": "isDateDisabled",
              "description": "Controls which days are disabled and therefore disallowed.\nFor example, this can be used to disallow selection of weekends."
            },
            {
              "kind": "field",
              "name": "isDateHighlighted",
              "type": {
                "text": "(date: Date) => string | boolean"
              },
              "default": "isDateHighlighted",
              "description": "Controls which days are highlighted with a small indicator.\nReturning `false` will not show an indicator.\nReturning `true` will show the indicator, but without an accessible label. Therefore\nReturning a string will show the indicator, and use the string as accessible label.\nIt is recommended to return a string rather than `true` whenever possible."
            },
            {
              "kind": "field",
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the date picker expands to fill the width of its container.",
              "attribute": "expand",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "createDateFormatters",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "focusFirst",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "focusLast",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleDaySelect",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleOpen",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleClose",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleBlur",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleFocus",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleInputChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setValue",
              "privacy": "private",
              "parameters": [
                {
                  "name": "date",
                  "optional": true,
                  "type": {
                    "text": "Date"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "validateDateBounds",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | undefined"
                }
              },
              "parameters": [
                {
                  "name": "date",
                  "type": {
                    "text": "Date | undefined"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "hide",
              "parameters": [
                {
                  "name": "moveFocusToButton",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  },
                  "description": "A boolean option to move the focus to the original button that opens the popout."
                }
              ],
              "description": "Hide the date picker programmatically."
            },
            {
              "kind": "method",
              "name": "show",
              "description": "Show the date picker programmatically."
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "attribute": "size",
              "reflects": true,
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "labelSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'label')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'error')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'hint')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formData",
              "privacy": "protected",
              "default": "new FormDataController(this, { value: () => this.formValue })",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formValue",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'input'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'error'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'hint'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "attribute": "label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "attribute": "hint",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "attribute": "hide-label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "attribute": "placeholder",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "attribute": "error",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "attribute": "required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "attribute": "hide-required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "additionalContent",
                  "optional": true,
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderError",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getInvalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasHint",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasError",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
              "attribute": "readonly",
              "reflects": true,
              "inheritedFrom": {
                "name": "ReadonlyMixin",
                "module": "src/common/mixins/ReadonlyMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "events": [
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the input's value is changed via user interaction.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched when the popout is opened.",
              "name": "open"
            },
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched when the popout is closed.",
              "name": "close"
            },
            {
              "type": {
                "text": "DateSelectEvent"
              },
              "description": "Dispatched when the calendar's focused date changes.",
              "name": "nord-focus-date"
            },
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the input.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Date value. Must be in IS0-8601 format: YYYY-MM-DD.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether date picker dialog is open or not.",
              "fieldName": "open"
            },
            {
              "name": "min",
              "type": {
                "text": "string | undefined"
              },
              "description": "Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the max property.",
              "fieldName": "min"
            },
            {
              "name": "max",
              "type": {
                "text": "string | undefined"
              },
              "description": "Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the min property.",
              "fieldName": "max"
            },
            {
              "name": "today",
              "type": {
                "text": "string | undefined"
              },
              "description": "The date that is considered today. Must be in IS0-8601 format: YYYY-MM-DD.\nIf not set, the current local date of the user is used.",
              "fieldName": "today"
            },
            {
              "name": "first-day-of-week",
              "type": {
                "text": "DaysOfWeek"
              },
              "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
              "fieldName": "firstDayOfWeek"
            },
            {
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the date picker expands to fill the width of its container.",
              "fieldName": "expand"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "fieldName": "size",
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "fieldName": "label",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "fieldName": "hint",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-label",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "fieldName": "hideLabel",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "fieldName": "placeholder",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "fieldName": "error",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "fieldName": "required",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "fieldName": "hideRequired",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
              "fieldName": "readonly",
              "inheritedFrom": {
                "name": "ReadonlyMixin",
                "module": "src/common/mixins/ReadonlyMixin.ts"
              }
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "SizeMixin",
              "module": "/src/common/mixins/SizeMixin.js"
            },
            {
              "name": "FormAssociatedMixin",
              "module": "/src/common/mixins/FormAssociatedMixin.js"
            },
            {
              "name": "ReadonlyMixin",
              "module": "/src/common/mixins/ReadonlyMixin.js"
            },
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [
            {
              "name": "modalHeading",
              "description": "Heading for the date picker's modal."
            },
            {
              "name": "closeLabel",
              "description": "Accessible label for the close button."
            },
            {
              "name": "buttonLabel",
              "description": "Accessible label for the toggle button that opens the date picker modal."
            },
            {
              "name": "selectedDateMessage",
              "description": "Describes the selected date. This message is appended to the toggle button label when a date is selected."
            },
            {
              "name": "dateOutOfMinBound",
              "description": "Error message shown when the entered date is below the minimum allowed date."
            },
            {
              "name": "dateOutOfMaxBound",
              "description": "Error message shown when the entered date is above the maximum allowed date."
            }
          ],
          "status": "ready",
          "category": "form",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use to choose a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nDate picker is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Choose date button\n\n- `Space, Enter`: Opens the date picker dialog and moves focus to the first select menu in the dialog.\n\n### Date picker dialog\n\n- `Esc`: Closes the date picker dialog and moves focus back to the “choose date” button.\n- `Tab`: Moves focus to the next element in the dialog. Please note since the calendar uses `role=\"grid\"`, only one button in the calendar grid is in the tab sequence. Additionally, if focus is on the last focusable element, focus is next moved back to the first focusable element inside the date picker dialog.\n- `Shift + Tab`: Same as above, but in reverse order.\n\n### Date picker dialog: Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Date picker dialog: Date grid\n\n- `Space, Enter`: Selects a date, closes the dialog, and moves focus back to the “Choose Date” button. Additionally updates the value of the date picker input with the selected date, and adds selected date to “Choose Date” button label.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n\n#### Date picker dialog: Close button\n\n- `Space, Enter`: Closes the dialog, moves focus to “choose date” button, but does not update the date in input.\n",
          "examples": [],
          "dependencies": [
            "icon",
            "input",
            "button",
            "visually-hidden",
            "popout",
            "stack",
            "calendar"
          ],
          "tagName": "nord-date-picker",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "DatePicker",
            "module": "src/date-picker/DatePicker.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-date-picker",
          "declaration": {
            "name": "DatePicker",
            "module": "src/date-picker/DatePicker.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/date-picker/date-adapter.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "isoAdapter",
          "type": {
            "text": "DateAdapter"
          },
          "default": "{ parse: parseISODate, format: printISODate }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "isoAdapter",
          "declaration": {
            "name": "isoAdapter",
            "module": "src/date-picker/date-adapter.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/date-picker/localization.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "datePickerLocalization",
          "type": {
            "text": "object"
          },
          "default": "{ modalHeading: 'Choose a date', closeLabel: 'Close window', buttonLabel: 'Choose date', selectedDateMessage: 'Selected date is', dateOutOfMinBound: (minDate: string) => `Date must be on or after ${minDate}`, dateOutOfMaxBound: (maxDate: string) => `Date must be on or before ${maxDate}`, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "datePickerLocalization",
            "module": "src/date-picker/localization.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/divider/Divider.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Divider', component: 'nord-divider', tags: ['autodocs'], argTypes: { direction: { control: 'select', options: ['vertical', 'horizontal'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { direction: 'horizontal', }, render: args => html` <nord-divider direction=${args.direction}></nord-divider> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-divider></nord-divider>`, }"
        },
        {
          "kind": "variable",
          "name": "Color",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-divider style=\"--n-divider-color: var(--n-color-border-strong)\"></nord-divider> `, }"
        },
        {
          "kind": "variable",
          "name": "Horizontal",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\"> <div>Group</div> <nord-divider direction=\"vertical\"></nord-divider> <div>Group</div> <nord-divider direction=\"vertical\"></nord-divider> <div>Group</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "InCard",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-card> <nord-stack> <div>Group</div> <nord-divider></nord-divider> <div>Group</div> <nord-divider></nord-divider> <div>Group</div> </nord-stack> </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-divider style=\"--n-divider-size: 4px\"></nord-divider>`, }"
        },
        {
          "kind": "variable",
          "name": "Vertical",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <div>Group</div> <nord-divider></nord-divider> <div>Group</div> <nord-divider></nord-divider> <div>Group</div> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/divider/Divider.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/divider/Divider.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/divider/Divider.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Color",
          "declaration": {
            "name": "Color",
            "module": "src/divider/Divider.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Horizontal",
          "declaration": {
            "name": "Horizontal",
            "module": "src/divider/Divider.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InCard",
          "declaration": {
            "name": "InCard",
            "module": "src/divider/Divider.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/divider/Divider.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Vertical",
          "declaration": {
            "name": "Vertical",
            "module": "src/divider/Divider.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/divider/Divider.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Divider components are used to separate and distinguish sections of\ncontent or groups of menu items. Visually, they look like\nhorizontal or vertical lines.",
          "name": "Divider",
          "cssProperties": [
            {
              "description": "Controls the color of the divider, using our [color tokens](/tokens/#color).",
              "name": "--n-divider-color",
              "default": "var(--n-color-border)"
            },
            {
              "description": "Controls the size, or thickness, of the divider.",
              "name": "--n-divider-size",
              "default": "1px"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "direction",
              "type": {
                "text": "'vertical' | 'horizontal'"
              },
              "default": "'horizontal'",
              "description": "The direction of the divider.",
              "attribute": "direction",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleDirectionChange",
              "privacy": "private"
            }
          ],
          "attributes": [
            {
              "name": "direction",
              "type": {
                "text": "'vertical' | 'horizontal'"
              },
              "default": "'horizontal'",
              "description": "The direction of the divider.",
              "fieldName": "direction"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "structure",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to represent thematic breaks between elements.\n- Use when you need to divide sections of content from each other.\n- Use to separate content into clear groups.\n- Use dividers sparingly, to create groupings or to separate items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Avoid using for presentational purposes only.\n- Don’t use strong colors in dividers.\n- Don’t use dividers for replacing card components.\n\n</div>\n\n---\n\n## Additional considerations\n\n- Divider uses a role called `separator` which indicates that the element is a divider that separates and distinguishes sections of content or groups of menu items. The implicit ARIA role of the native thematic break (`<hr>` element) is a separator.\n- Dividers have an implicit aria-orientation value of `horizontal` which can be changed using the `direction` property.\n- For more details, please see [ARIA: separator role on MDN](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/separator_role).\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-divider",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Divider",
            "module": "src/divider/Divider.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-divider",
          "declaration": {
            "name": "Divider",
            "module": "src/divider/Divider.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/drawer/Drawer.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Drawer', component: 'nord-drawer', tags: ['autodocs'], argTypes: { padding: { control: 'select', options: ['m', 'none'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { padding: 'm', }, render: (args) => { const container = document.createElement('div') container.innerHTML = `<nord-layout> <nord-button id=\"toggle\">Toggle drawer</nord-button> <nord-drawer slot=\"drawer\" padding=\"${args.padding}\"> <nord-header slot=\"header\"> <h3 class=\"n-typescale-l n-truncate\">Drawer header</h3> <nord-button slot=\"end\" id=\"close\" variant=\"plain\" aria-describedby=\"close-sidebar\" size=\"s\" square> <nord-icon name=\"interface-close\" size=\"s\"></nord-icon> </nord-button> <nord-tooltip id=\"close-sidebar\">Close</nord-tooltip> </nord-header> <div class=\"n-typeset\"> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> </div> </nord-drawer> </nord-layout>` const layout = container.querySelector('nord-layout')! const drawer = container.querySelector('nord-drawer')! const toggleButton = container.querySelector('#toggle')! const closeButton = container.querySelector('#close')! const hide = () => drawer.remove() const show = () => layout.appendChild(drawer) closeButton.addEventListener('click', hide) toggleButton.addEventListener('click', () => { if (drawer.isConnected) { hide() } else { show() } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout> <nord-button id=\"toggle\">Toggle drawer</nord-button> <nord-drawer slot=\"drawer\"> <nord-header slot=\"header\"> <h3 class=\"n-typescale-l n-truncate\">Drawer header</h3> <nord-button slot=\"end\" id=\"close\" variant=\"plain\" aria-describedby=\"close-sidebar\" size=\"s\" square> <nord-icon name=\"interface-close\" size=\"s\"></nord-icon> </nord-button> <nord-tooltip id=\"close-sidebar\">Close</nord-tooltip> </nord-header> <div class=\"n-typeset\"> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> </div> </nord-drawer> </nord-layout>` const layout = container.querySelector('nord-layout') const drawer = container.querySelector('nord-drawer') const toggleButton = container.querySelector('#toggle') const closeButton = container.querySelector('#close') const hide = () => drawer.remove() const show = () => layout.appendChild(drawer) closeButton.addEventListener('click', hide) toggleButton.addEventListener('click', () => { if (drawer.isConnected) { hide() } else { show() } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Complex",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout> <nord-button id=\"toggle\">Toggle drawer</nord-button> <nord-drawer slot=\"drawer\"> <nord-header slot=\"header\"> <h3 class=\"n-typescale-l n-truncate\">50,00&thinsp;€</h3> <nord-button-group slot=\"end\" variant=\"spaced\"> <nord-button variant=\"plain\" aria-describedby=\"open-in-new-window\" size=\"s\" square> <nord-icon name=\"interface-new-window\" size=\"s\"></nord-icon> </nord-button> <nord-button id=\"close\" variant=\"plain\" aria-describedby=\"close-sidebar\" size=\"s\" square> <nord-icon name=\"interface-close\" size=\"s\"></nord-icon> </nord-button> </nord-button-group> <nord-tooltip id=\"open-in-new-window\">Open in new window</nord-tooltip> <nord-tooltip id=\"close-sidebar\">Close</nord-tooltip> </nord-header> <dl class=\"n-dl\"> <dt>Status</dt> <dd><nord-badge variant=\"success\">Success</nord-badge></dd> <dt>Date</dt> <dd>Value 2</dd> <dt>Amount</dt> <dd>50,00&thinsp;€</dd> <dt>Payment fee</dt> <dd>1,75&thinsp;</dd> <dt>Method</dt> <dd>Card</dd> <dt>Identifier</dt> <dd>PAY38DL19710O</dd> </dl> <nord-divider class=\"n-margin-b-xl\"></nord-divider> <p class=\"n-margin-be-l\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit. </p> </nord-drawer> </nord-layout>` const layout = container.querySelector('nord-layout') const drawer = container.querySelector('nord-drawer') const toggleButton = container.querySelector('#toggle') const closeButton = container.querySelector('#close') const hide = () => drawer.remove() const show = () => layout.appendChild(drawer) closeButton.addEventListener('click', hide) toggleButton.addEventListener('click', () => { if (drawer.isConnected) { hide() } else { show() } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "WithHeaderAndFooter",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout> <nord-button id=\"toggle\">Toggle drawer</nord-button> <nord-drawer slot=\"drawer\"> <nord-header slot=\"header\"> <h3 class=\"n-typescale-l n-truncate\">Drawer header</h3> <nord-button-group slot=\"end\" variant=\"spaced\"> <nord-button variant=\"plain\" aria-describedby=\"open-in-new-window\" size=\"s\" square> <nord-icon name=\"interface-new-window\" size=\"s\"></nord-icon> </nord-button> <nord-button id=\"close\" variant=\"plain\" aria-describedby=\"close-sidebar\" size=\"s\" square> <nord-icon name=\"interface-close\" size=\"s\"></nord-icon> </nord-button> </nord-button-group> <nord-tooltip id=\"open-in-new-window\">Open in new window</nord-tooltip> <nord-tooltip id=\"close-sidebar\">Close</nord-tooltip> </nord-header> <div class=\"n-typeset\"> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> <p>Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit.</p> </div> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button>Cancel</nord-button> <nord-button variant=\"primary\">Done</nord-button> </nord-button-group> </nord-drawer> </nord-layout>` const layout = container.querySelector('nord-layout') const drawer = container.querySelector('nord-drawer') const toggleButton = container.querySelector('#toggle') const closeButton = container.querySelector('#close') const hide = () => drawer.remove() const show = () => layout.appendChild(drawer) closeButton.addEventListener('click', hide) toggleButton.addEventListener('click', () => { if (drawer.isConnected) { hide() } else { show() } }) return container }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/drawer/Drawer.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/drawer/Drawer.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/drawer/Drawer.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Complex",
          "declaration": {
            "name": "Complex",
            "module": "src/drawer/Drawer.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithHeaderAndFooter",
          "declaration": {
            "name": "WithHeaderAndFooter",
            "module": "src/drawer/Drawer.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/drawer/Drawer.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Drawer is used to display context-sensitive actions and  information.\nDrawer doesn’t block users from completing their task, like a modal would.",
          "name": "Drawer",
          "cssProperties": [
            {
              "description": "Controls the padding around the main area (the default slot), using our [spacing tokens](/tokens/#space).",
              "name": "--n-drawer-padding",
              "default": "var(--n-space-l)"
            }
          ],
          "slots": [
            {
              "description": "Optional slot that holds a header for the drawer.",
              "name": "header"
            },
            {
              "description": "Default slot.",
              "name": ""
            },
            {
              "description": "Optional slot that holds footer content for the drawer.",
              "name": "footer"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "footerSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'footer')"
            },
            {
              "kind": "field",
              "name": "padding",
              "type": {
                "text": "'m' | 'none'"
              },
              "default": "'m'",
              "description": "Controls the padding of the drawer component.",
              "attribute": "padding",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "padding",
              "type": {
                "text": "'m' | 'none'"
              },
              "default": "'m'",
              "description": "Controls the padding of the drawer component.",
              "fieldName": "padding"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "new",
          "category": "structure",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use for displaying contextual actions or information. For example, when clicking on a table row.\n- Use when you don’t want to block users from completing their task in the main view of an application.\n- Always include a header that summarizes the actions and information in the drawer.\n- Should be closeable through actions like “Done” and “Close”.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t put cards inside the drawer. Consider using the [divider](/components/divider/) component to break up sections instead.\n- Don’t reset the drawer’s state when closed if used for settings or filters. Settings should persist.\n- Don’t open from within another drawer. Only one drawer can be open at a time.\n- Don’t use for presenting a small amount of content or an actions menu, use the [popout](/components/popout/) or [dropdown](/components/dropdown/) component instead.\n\n</div>\n\n---\n\n## Additional considerations\n\n- You can customize the width of the component using `--n-layout-drawer-inline-size` CSS Custom Property that is offered on [Layout component](/components/layout/).\n",
          "examples": [],
          "dependencies": [
            "footer"
          ],
          "tagName": "nord-drawer",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Drawer",
            "module": "src/drawer/Drawer.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-drawer",
          "declaration": {
            "name": "Drawer",
            "module": "src/drawer/Drawer.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/dropdown/Dropdown.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Dropdown', component: 'nord-dropdown', tags: ['autodocs'], argTypes: { expand: { control: 'boolean' }, size: { control: 'select', options: ['s', 'm', 'l'], }, alwaysFloating: { control: 'boolean' }, open: { control: 'boolean' }, align: { control: 'select', options: ['start', 'end'], }, position: { control: 'select', options: ['block-end', 'block-start', 'inline-start', 'inline-end', 'auto'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { expand: false, size: 'm', alwaysFloating: false, open: false, align: 'start', position: 'block-end', }, render: args => html` <nord-dropdown ?expand=${args.expand} size=${args.size} ?always-floating=${args.alwaysFloating} ?open=${args.open} align=${args.align} position=${args.position}><nord-button slot=\"toggle\">Open</nord-button>\\n <nord-dropdown-item>Option 1</nord-dropdown-item>\\n <nord-dropdown-item>Option 2</nord-dropdown-item>\\n <nord-dropdown-item>Option 3</nord-dropdown-item></nord-dropdown> `, }"
        },
        {
          "kind": "variable",
          "name": "AlwaysFloating",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: calc(var(--n-space-xxl) * 3)\" > <nord-dropdown size=\"s\" always-floating> <nord-button slot=\"toggle\">Menu</nord-button> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "BadgeAsToggle",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\"> <nord-dropdown size=\"s\"> <nord-button size=\"s\" variant=\"plain\" slot=\"toggle\"> <nord-badge variant=\"success\" class=\"toggle\"> <nord-icon name=\"interface-checked-small\"></nord-icon> Discharged </nord-badge> </nord-button> <nord-dropdown-item href=\"#\">Waiting for consultation</nord-dropdown-item> <nord-dropdown-item>Consultation</nord-dropdown-item> <nord-dropdown-item>Arrived</nord-dropdown-item> <nord-dropdown-item>Upcoming</nord-dropdown-item> <nord-dropdown-item>Cancelled</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: calc(var(--n-space-xxl) * 3)\" > <nord-dropdown size=\"s\"> <nord-button slot=\"toggle\">Menu</nord-button> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> <nord-dropdown-item>Show keyboard shortcuts</nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> <nord-dropdown-item>Sign out</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "ClinicSwitcher",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-navigation style=\"max-inline-size: 250px\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> </nord-navigation> `, }"
        },
        {
          "kind": "variable",
          "name": "Complex",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: calc(var(--n-space-xxl) * 4)\" > <nord-dropdown> <nord-button size=\"s\" slot=\"toggle\"> <nord-visually-hidden>Menu</nord-visually-hidden> <nord-icon size=\"s\" name=\"interface-menu-small\"></nord-icon> </nord-button> <nord-dropdown-group heading=\"Account\"> <nord-dropdown-item href=\"#\"> <nord-icon slot=\"start\" name=\"user-single\"></nord-icon> View profile <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"navigation-settings\"></nord-icon> Settings </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"generic-keyboard\"></nord-icon> Show keyboard shortcuts </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"interface-help\"></nord-icon> Help & Support </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"file-script\"></nord-icon> API </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Grouping",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: calc(var(--n-space-xxl) * 4)\" > <nord-dropdown> <nord-button slot=\"toggle\">Menu</nord-button> <nord-dropdown-group heading=\"Account\"> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Show keyboard shortcuts</nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "InlineSize",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: calc(var(--n-space-xxl) * 3)\" > <nord-dropdown size=\"s\"> <nord-button slot=\"toggle\">Small</nord-button> <nord-dropdown-item>Item 1</nord-dropdown-item> <nord-dropdown-item>Item 2</nord-dropdown-item> <nord-dropdown-item>Item 3</nord-dropdown-item> </nord-dropdown> <nord-dropdown size=\"m\"> <nord-button slot=\"toggle\">Medium</nord-button> <nord-dropdown-item>Item 1</nord-dropdown-item> <nord-dropdown-item>Item 2</nord-dropdown-item> <nord-dropdown-item>Item 3</nord-dropdown-item> </nord-dropdown> <nord-dropdown size=\"l\"> <nord-button slot=\"toggle\">Large</nord-button> <nord-dropdown-item>Item 1</nord-dropdown-item> <nord-dropdown-item>Item 2</nord-dropdown-item> <nord-dropdown-item>Item 3</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "MaximumBlockSize",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: calc(var(--n-space-xxl) * 3)\" > <nord-dropdown> <nord-button slot=\"toggle\">Default</nord-button> <nord-dropdown-item>Item 1</nord-dropdown-item> <nord-dropdown-item>Item 2</nord-dropdown-item> <nord-dropdown-item>Item 3</nord-dropdown-item> <nord-dropdown-item>Item 4</nord-dropdown-item> <nord-dropdown-item>Item 5</nord-dropdown-item> <nord-dropdown-item>Item 6</nord-dropdown-item> <nord-dropdown-item>Item 7</nord-dropdown-item> <nord-dropdown-item>Item 8</nord-dropdown-item> <nord-dropdown-item>Item 9</nord-dropdown-item> <nord-dropdown-item>Item 10</nord-dropdown-item> <nord-dropdown-item>Item 11</nord-dropdown-item> <nord-dropdown-item>Item 12</nord-dropdown-item> <nord-dropdown-item>Item 13</nord-dropdown-item> <nord-dropdown-item>Item 14</nord-dropdown-item> <nord-dropdown-item>Item 15</nord-dropdown-item> </nord-dropdown> <nord-dropdown style=\"--n-dropdown-max-block-size: 200px\"> <nord-button slot=\"toggle\">Custom</nord-button> <nord-dropdown-item>Item 1</nord-dropdown-item> <nord-dropdown-item>Item 2</nord-dropdown-item> <nord-dropdown-item>Item 3</nord-dropdown-item> <nord-dropdown-item>Item 4</nord-dropdown-item> <nord-dropdown-item>Item 5</nord-dropdown-item> <nord-dropdown-item>Item 6</nord-dropdown-item> <nord-dropdown-item>Item 7</nord-dropdown-item> <nord-dropdown-item>Item 8</nord-dropdown-item> <nord-dropdown-item>Item 9</nord-dropdown-item> <nord-dropdown-item>Item 10</nord-dropdown-item> <nord-dropdown-item>Item 11</nord-dropdown-item> <nord-dropdown-item>Item 12</nord-dropdown-item> <nord-dropdown-item>Item 13</nord-dropdown-item> <nord-dropdown-item>Item 14</nord-dropdown-item> <nord-dropdown-item>Item 15</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "PositionAndAlignment",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style> body { display: grid; grid-template-columns: repeat(auto-fit, minmax(30ch, max-content)); justify-content: center; gap: var(--n-space-m); } </style> <nord-dropdown expand> <nord-button slot=\"toggle\" expand>Default</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"start\"> <nord-button slot=\"toggle\" expand>align=\"start\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"end\"> <nord-button slot=\"toggle\" expand>align=\"end\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand position=\"block-end\"> <nord-button slot=\"toggle\" expand>position=\"block-end\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand position=\"block-start\"> <nord-button slot=\"toggle\" expand>position=\"block-start\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand position=\"inline-start\"> <nord-button slot=\"toggle\" expand>position=\"inline-start\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand position=\"inline-end\"> <nord-button slot=\"toggle\" expand>position=\"inline-end\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" expand>align=\"start\" position=\"block-end\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"start\" position=\"block-start\"> <nord-button slot=\"toggle\" expand>align=\"start\" position=\"block-start\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"start\" position=\"inline-start\"> <nord-button slot=\"toggle\" expand>align=\"start\" position=\"inline-start\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"start\" position=\"inline-end\"> <nord-button slot=\"toggle\" expand>align=\"start\" position=\"inline-end\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"end\" position=\"block-end\"> <nord-button slot=\"toggle\" expand>align=\"end\" position=\"block-end\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"end\" position=\"block-start\"> <nord-button slot=\"toggle\" expand>align=\"end\" position=\"block-start\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"end\" position=\"inline-start\"> <nord-button slot=\"toggle\" expand>align=\"end\" position=\"inline-start\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"end\" position=\"inline-end\"> <nord-button slot=\"toggle\" expand>align=\"end\" position=\"inline-end\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand position=\"auto\"> <nord-button slot=\"toggle\" expand>position=\"auto\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"start\" position=\"auto\"> <nord-button slot=\"toggle\" expand>align=\"start\" position=\"auto\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> <nord-dropdown expand align=\"end\" position=\"auto\"> <nord-button slot=\"toggle\" expand>align=\"end\" position=\"auto\"</nord-button> <nord-dropdown-item>View profile</nord-dropdown-item> <nord-dropdown-item>Save changes</nord-dropdown-item> </nord-dropdown> `, }"
        },
        {
          "kind": "variable",
          "name": "Position",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-top: calc(var(--n-space-xxl) * 3)\" > <nord-dropdown position=\"inline-end\" align=\"end\"> <nord-button slot=\"toggle\">Open top right</nord-button> <nord-dropdown-group heading=\"Account\"> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Show keyboard shortcuts</nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithHeader",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: calc(var(--n-space-xxl) * 3)\" > <nord-dropdown> <nord-button slot=\"toggle\">Laura Williams</nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Laura Williams\"></nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Laura Williams</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help &amp; Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item >Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon ></nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithMessages",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: calc(var(--n-space-xxl) * 3)\" > <nord-dropdown> <nord-button slot=\"toggle\">Notifications (7)</nord-button> <h2 slot=\"header\" class=\"n-typescale-l\"> Notifications <span class=\"n-font-weight n-color-text-weaker\">(7)</span> </h2> <nord-button slot=\"header-end\" size=\"s\" autofocus>Mark all as read</nord-button> <nord-message unread highlight> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> New feature available! We’ve introduced a quick way to navigate between app views, actions, and more using a new command menu. <span slot=\"footer\">12 minutes ago</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Nick Williams arrived to clinic with Moog cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Eric Habich arrived to clinic with Zero cat. <span slot=\"footer\">4 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Elvin van Eede arrived to clinic with Amoeba cat. <span slot=\"footer\">12 hours ago at Nord Clinic</span> </nord-message> <nord-dropdown-item> See all notifications<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithSubmenu",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style> body { padding: var(--n-space-m); margin-bottom: calc(var(--n-space-xxl) * 4); } </style> <nord-stack direction=\"horizontal\" justify-content=\"center\"> <nord-dropdown size=\"s\"> <nord-button slot=\"toggle\"> <nord-visually-hidden>Menu</nord-visually-hidden> <nord-icon size=\"s\" name=\"interface-menu-small\"></nord-icon> </nord-button> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> <nord-icon slot=\"start\" name=\"interface-share\" size=\"s\"></nord-icon> Share <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> <nord-dropdown-item>Send by email</nord-dropdown-item> <nord-dropdown-item>Get QR code</nord-dropdown-item> </nord-dropdown-submenu> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> <nord-icon slot=\"start\" name=\"interface-download\" size=\"s\"></nord-icon> Export <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Export as PDF</nord-dropdown-item> <nord-dropdown-item>Export as CSV</nord-dropdown-item> <nord-dropdown-item>Export as JSON</nord-dropdown-item> </nord-dropdown-submenu> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"interface-delete\" size=\"s\"></nord-icon> Delete </nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "AlwaysFloating",
          "declaration": {
            "name": "AlwaysFloating",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "BadgeAsToggle",
          "declaration": {
            "name": "BadgeAsToggle",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ClinicSwitcher",
          "declaration": {
            "name": "ClinicSwitcher",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Complex",
          "declaration": {
            "name": "Complex",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Grouping",
          "declaration": {
            "name": "Grouping",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InlineSize",
          "declaration": {
            "name": "InlineSize",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "MaximumBlockSize",
          "declaration": {
            "name": "MaximumBlockSize",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PositionAndAlignment",
          "declaration": {
            "name": "PositionAndAlignment",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Position",
          "declaration": {
            "name": "Position",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithHeader",
          "declaration": {
            "name": "WithHeader",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithMessages",
          "declaration": {
            "name": "WithMessages",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithSubmenu",
          "declaration": {
            "name": "WithSubmenu",
            "module": "src/dropdown/Dropdown.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/dropdown/Dropdown.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Dropdown menu displays a list of actions or selectable options for\na user. Dropdown uses popout component internally to create\nthe overlay functionality.",
          "name": "Dropdown",
          "cssProperties": [
            {
              "description": "Controls the inline size, or width, of the dropdown. Will resize up to 1.5 times to account for larger content.",
              "name": "--n-dropdown-size",
              "default": "250px"
            },
            {
              "description": "Controls the maximum block size, or height, of the dropdown. Larger content will get a scrollbar.",
              "name": "--n-dropdown-max-block-size",
              "default": "460px"
            }
          ],
          "slots": [
            {
              "description": "The dropdown content.",
              "name": ""
            },
            {
              "description": "Used to place the toggle for dropdown.",
              "name": "toggle"
            },
            {
              "description": "Optional slot that holds a header for the dropdown.",
              "name": "header"
            },
            {
              "description": "Optional slot that positions content at the end of the header. Useful for actions or additional info.",
              "name": "header-end"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "headerSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'header')"
            },
            {
              "kind": "field",
              "name": "headerEndSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'header-end')"
            },
            {
              "kind": "field",
              "name": "list",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "popout",
              "type": {
                "text": "Popout"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "submenuStack",
              "type": {
                "text": "DropdownSubmenu[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "isNavigating",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "isShowingSubmenu",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the toggle slot expands to fill the width of its container.",
              "attribute": "expand",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the dropdown. This affects the minimum and maximum inline-size\nof the dropdown.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "alwaysFloating",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Set to true to always display the dropdown as a floating overlay, even on smaller viewports.",
              "attribute": "always-floating",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleAlwaysFloatingChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleBlur",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "FocusEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleOpen",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleBackClick",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleClose",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleOpenChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "hide",
              "return": {
                "type": {
                  "text": "Promise<TransitionEvent | void>"
                }
              },
              "parameters": [
                {
                  "name": "moveFocusToButton",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  },
                  "description": "A boolean option to move the focus to the original button that opens the dropdown."
                }
              ],
              "description": "Hide the dropdown programmatically.\nThis method delegates to the Dropdown's internal Popout component.\nSee [Popout's hide() method](/components/popout#methods-hide) for more details."
            },
            {
              "kind": "method",
              "name": "show",
              "return": {
                "type": {
                  "text": "Promise<TransitionEvent | void>"
                }
              },
              "description": "Show the dropdown programmatically.\nThis method delegates to the Dropdown's internal Popout component.\nSee [Popout's show() method](/components/popout#methods-hide) for more details."
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the component is open or not.",
              "attribute": "open",
              "reflects": true,
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "align",
              "type": {
                "text": "'start' | 'end'"
              },
              "default": "'start'",
              "description": "Set the alignment in relation to the toggle (or anchor) depending on the position.\n`start` will align it to the left of the toggle (or anchor).\n`end` will align it to the right of the toggle (or anchor).\nSetting the `position` to `inline-start` or `inline-end` will switch\n`start` and `end` to the top and bottom respectively.",
              "attribute": "align",
              "reflects": true,
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "position",
              "type": {
                "text": "'block-end' | 'block-start' | 'inline-start' | 'inline-end' | 'auto'"
              },
              "default": "'block-end'",
              "description": "Set the position in relation to the toggle (or anchor).\nOptions follow logical properties.\n`block-start` and `block-end` referring to top and bottom respectively,\n`inline-start` and `inline-end` referring to left and right respectively.\nYou can also set it to `auto` for automatic positioning depending on\nwhich side has the most space available.",
              "attribute": "position",
              "reflects": true,
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            }
          ],
          "events": [
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched when the popout is opened.",
              "name": "open"
            },
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched when the popout is closed.",
              "name": "close"
            }
          ],
          "attributes": [
            {
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the toggle slot expands to fill the width of its container.",
              "fieldName": "expand"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the dropdown. This affects the minimum and maximum inline-size\nof the dropdown.",
              "fieldName": "size"
            },
            {
              "name": "always-floating",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Set to true to always display the dropdown as a floating overlay, even on smaller viewports.",
              "fieldName": "alwaysFloating"
            },
            {
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the component is open or not.",
              "fieldName": "open",
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            },
            {
              "name": "align",
              "type": {
                "text": "'start' | 'end'"
              },
              "default": "'start'",
              "description": "Set the alignment in relation to the toggle (or anchor) depending on the position.\n`start` will align it to the left of the toggle (or anchor).\n`end` will align it to the right of the toggle (or anchor).\nSetting the `position` to `inline-start` or `inline-end` will switch\n`start` and `end` to the top and bottom respectively.",
              "fieldName": "align",
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            },
            {
              "name": "position",
              "type": {
                "text": "'block-end' | 'block-start' | 'inline-start' | 'inline-end' | 'auto'"
              },
              "default": "'block-end'",
              "description": "Set the position in relation to the toggle (or anchor).\nOptions follow logical properties.\n`block-start` and `block-end` referring to top and bottom respectively,\n`inline-start` and `inline-end` referring to left and right respectively.\nYou can also set it to `auto` for automatic positioning depending on\nwhich side has the most space available.",
              "fieldName": "position",
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "FloatingMixin",
              "module": "/src/common/mixins/FloatingComponentMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "action",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Dropdown menus are typically used when you have 5-15 items to choose from. They’re used for navigation or commands, where an action is initiated based on the selection.\n- When organizing dropdown menu items, sort the list in a logical order by putting the most selected option at the top.\n- Use for a “more” menu, where the control contains an icon.\n- Use for user profiles, where the control is an avatar.\n- Use in conjunction with the [dropdown item](/components/dropdown-item/) and [dropdown group](/components/dropdown-group/) components.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don't use for form inputs or selects, use the [select component](/components/select/) or [input component](/components/input/) instead.\n- Don't use for hiding primary actions since they should be visible by default.\n- Don't nest elements or components other than the [dropdown item](/components/dropdown-item/) and [dropdown group](/components/dropdown-group/) components. Consider using the [popout component](/components/popout/) when creating custom UI.\n- Don't use `always-floating` property for long lists or complex content that benefits from full-screen focus.\n\n</div>\n\n---\n\n## Content guidelines\n\nDropdown items should be always written in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Create user</div>\n<div class=\"n-usage n-usage-dont\">Create User</div>\n\nDropdown items should always lead with a strong verb that encourages action. Use the `{verb}+{noun}` format except in the case of common actions like Save, Close or Cancel:\n\n<div class=\"n-usage n-usage-do\">Edit row</div>\n<div class=\"n-usage n-usage-dont\">Editing options</div>\n\nAvoid unnecessary words and articles in dropdown items, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending dropdown items in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nAvoid all caps for dropdown items:\n\n<div class=\"n-usage n-usage-do\">Rename</div>\n<div class=\"n-usage n-usage-dont\">RENAME</div>\n\nKeep dropdown items to a single line of text:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme<br/>of the veterinary application.</div>\n\n---\n\n## Additional considerations\n\n- Consider using the `alwaysFloating` property for compact dropdown menus that work well in a small floating container.\n",
          "examples": [],
          "dependencies": [
            "popout",
            "icon",
            "dropdown-item"
          ],
          "tagName": "nord-dropdown",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Dropdown",
            "module": "src/dropdown/Dropdown.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-dropdown",
          "declaration": {
            "name": "Dropdown",
            "module": "src/dropdown/Dropdown.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/dropdown-group/DropdownGroup.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Dropdown Group', component: 'nord-dropdown-group', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { heading: 'Group heading', }, render: args => html` <nord-dropdown-group heading=${args.heading}> <nord-dropdown-item>Show keyboard shortcuts</nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-dropdown-group> <nord-dropdown-item>Show keyboard shortcuts</nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Heading",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-dropdown-group heading=\"Group heading\"> <nord-dropdown-item>Show keyboard shortcuts</nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/dropdown-group/DropdownGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/dropdown-group/DropdownGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/dropdown-group/DropdownGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Heading",
          "declaration": {
            "name": "Heading",
            "module": "src/dropdown-group/DropdownGroup.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/dropdown-group/DropdownGroup.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Dropdown group includes all the actions or items in a single dropdown\ngroup and is used for grouping items into related categories.",
          "name": "DropdownGroup",
          "slots": [
            {
              "description": "The dropdown group content.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "heading",
              "type": {
                "text": "string | undefined"
              },
              "description": "Heading and accessible label for the dropdown group.",
              "attribute": "heading",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "heading",
              "type": {
                "text": "string | undefined"
              },
              "description": "Heading and accessible label for the dropdown group.",
              "fieldName": "heading"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "action",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Group dropdown items into dropdown groups based on related categories.\n- Use group headings to clarify the category of a section.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for grouping other types of content.\n\n</div>\n\n---\n\n## Content guidelines\n\nDropdown items should be always written in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Create user</div>\n<div class=\"n-usage n-usage-dont\">Create User</div>\n\nDropdown items should always lead with a strong verb that encourages action. Use the `{verb}+{noun}` format except in the case of common actions like Save, Close or Cancel:\n\n<div class=\"n-usage n-usage-do\">Edit row</div>\n<div class=\"n-usage n-usage-dont\">Editing options</div>\n\nAvoid unnecessary words and articles in dropdown items, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending dropdown items in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nAvoid all caps for dropdown items:\n\n<div class=\"n-usage n-usage-do\">Rename</div>\n<div class=\"n-usage n-usage-dont\">RENAME</div>\n\nKeep dropdown items to a single line of text:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme<br/>of the veterinary application.</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-dropdown-group",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "DropdownGroup",
            "module": "src/dropdown-group/DropdownGroup.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-dropdown-group",
          "declaration": {
            "name": "DropdownGroup",
            "module": "src/dropdown-group/DropdownGroup.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/dropdown-item/DropdownItem.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Dropdown Item', component: 'nord-dropdown-item', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { disabled: false, href: undefined, target: '_self', }, render: args => html` <nord-dropdown-item ?disabled=${args.disabled} href=${args.href || ''} target=${args.target} > Show keyboard shortcuts </nord-dropdown-item> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-dropdown-item>Show keyboard shortcuts</nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomHoverEffect",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-dropdown-item:hover { --n-dropdown-item-background-color: var(--n-color-active); --n-dropdown-item-color: var(--n-color-text); }</style> <nord-dropdown-item>Show keyboard shortcuts</nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> `, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-dropdown-item disabled>Disabled</nord-dropdown-item> <nord-dropdown-item href=\"#\" disabled>Disabled link</nord-dropdown-item> <nord-dropdown-item>Regular</nord-dropdown-item> <nord-dropdown-item href=\"#\">Regular link</nord-dropdown-item> `, }"
        },
        {
          "kind": "variable",
          "name": "Links",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-dropdown-item href=\"#\">User profile</nord-dropdown-item> <nord-dropdown-item href=\"#\">Help & Support</nord-dropdown-item> <nord-dropdown-item href=\"#\">Sign out</nord-dropdown-item> `, }"
        },
        {
          "kind": "variable",
          "name": "Slots",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-dropdown-item> <nord-icon slot=\"start\" name=\"user-single\"></nord-icon> View profile <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"navigation-settings\"></nord-icon> Settings </nord-dropdown-item> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/dropdown-item/DropdownItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/dropdown-item/DropdownItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/dropdown-item/DropdownItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomHoverEffect",
          "declaration": {
            "name": "CustomHoverEffect",
            "module": "src/dropdown-item/DropdownItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/dropdown-item/DropdownItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Links",
          "declaration": {
            "name": "Links",
            "module": "src/dropdown-item/DropdownItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Slots",
          "declaration": {
            "name": "Slots",
            "module": "src/dropdown-item/DropdownItem.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/dropdown-item/DropdownItem.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Dropdown item populates dropdown with actions. Items can be\nplaced either inside a dropdown group or directly inside a\ndropdown component.",
          "name": "DropdownItem",
          "cssProperties": [
            {
              "description": "Controls the background color of the item, using our [color tokens](/tokens/#color).",
              "name": "--n-dropdown-item-background-color",
              "default": "transparent"
            },
            {
              "description": "Controls the color of the text within the item, using our [color tokens](/tokens/#color).",
              "name": "--n-dropdown-item-color",
              "default": "var(--n-color-text)"
            }
          ],
          "slots": [
            {
              "description": "The dropdown item content.",
              "name": ""
            },
            {
              "description": "Used to place content before dropdown item text. Typically used for icons.",
              "name": "start"
            },
            {
              "description": "Used to place content after dropdown item text. Typically used for icons.",
              "name": "end"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "endSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'end')"
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "The url the dropdown item should link to.",
              "attribute": "href",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "'_self' | '_blank' | '_parent' | '_top'"
              },
              "default": "'_self'",
              "description": "When provided together with a href property, determines where\nto open the linked URL. The keywords have special meanings for\nwhere to load the URL: “_self” means the current browsing context,\n“_blank” usually a new tab but users can configure browsers this to\nopen a new window instead, “_parent” means the parent browsing\ncontext of the current one, but if no parent exists, behaves as\n_self, and finally “top” means the topmost browsing context.",
              "attribute": "target"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "renderLink",
              "privacy": "private",
              "parameters": [
                {
                  "name": "innards",
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ],
              "description": "We jump through some hoops here to ensure the link is treated correctly when \"disabled\".\nLinks cannot be disabled natively, so we need to rely on some aria magic to get the correct semantics.\nAlong with the advice in the article below, we also set tabindex to \"-1\", so it is taken out of tab order."
            },
            {
              "kind": "method",
              "name": "renderButton",
              "privacy": "private",
              "parameters": [
                {
                  "name": "innards",
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "The url the dropdown item should link to.",
              "fieldName": "href"
            },
            {
              "name": "target",
              "type": {
                "text": "'_self' | '_blank' | '_parent' | '_top'"
              },
              "default": "'_self'",
              "description": "When provided together with a href property, determines where\nto open the linked URL. The keywords have special meanings for\nwhere to load the URL: “_self” means the current browsing context,\n“_blank” usually a new tab but users can configure browsers this to\nopen a new window instead, “_parent” means the parent browsing\ncontext of the current one, but if no parent exists, behaves as\n_self, and finally “top” means the topmost browsing context.",
              "fieldName": "target"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled"
            }
          ],
          "mixins": [
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "action",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Group dropdown items into dropdown groups based on related categories.\n- Use group headings to clarify the category of a section.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use dropdown item outside of dropdown group and dropdown components.\n\n</div>\n\n---\n\n## Content guidelines\n\nDropdown items should be always written in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Create user</div>\n<div class=\"n-usage n-usage-dont\">Create User</div>\n\nDropdown items should always lead with a strong verb that encourages action. Use the `{verb}+{noun}` format except in the case of common actions like Save, Close or Cancel:\n\n<div class=\"n-usage n-usage-do\">Edit row</div>\n<div class=\"n-usage n-usage-dont\">Editing options</div>\n\nAvoid unnecessary words and articles in dropdown items, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending dropdown items in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nAvoid all caps for dropdown items:\n\n<div class=\"n-usage n-usage-do\">Rename</div>\n<div class=\"n-usage n-usage-dont\">RENAME</div>\n\nKeep dropdown items to a single line of text:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme<br/>of the veterinary application.</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-dropdown-item",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "DropdownItem",
            "module": "src/dropdown-item/DropdownItem.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-dropdown-item",
          "declaration": {
            "name": "DropdownItem",
            "module": "src/dropdown-item/DropdownItem.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/dropdown-submenu/DropdownSubmenu.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Dropdown Submenu', component: 'nord-dropdown-submenu', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { alwaysFloating: false, }, render: args => html` <nord-dropdown size=\"s\" ?always-floating=${args.alwaysFloating}> <nord-button slot=\"toggle\"> <nord-visually-hidden>Menu</nord-visually-hidden> <nord-icon size=\"s\" name=\"interface-menu-small\"></nord-icon> </nord-button> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> <nord-icon slot=\"start\" name=\"interface-share\" size=\"s\"></nord-icon> Share <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> <nord-dropdown-item>Send by email</nord-dropdown-item> <nord-dropdown-item>Get QR code</nord-dropdown-item> </nord-dropdown-submenu> <nord-dropdown-submenu ?open=${args.open} align=${args.align} position=${args.position}> <nord-dropdown-item slot=\"trigger\"> <nord-icon slot=\"start\" name=\"interface-download\" size=\"s\"></nord-icon> Export <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Export as PDF</nord-dropdown-item> <nord-dropdown-item>Export as CSV</nord-dropdown-item> <nord-dropdown-item>Export as JSON</nord-dropdown-item> </nord-dropdown-submenu> <nord-dropdown-submenu ?open=${args.open} align=${args.align} position=${args.position}> <nord-dropdown-item slot=\"trigger\"> <nord-icon slot=\"start\" name=\"interface-menu-small\" size=\"s\"></nord-icon> More options <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Duplicate</nord-dropdown-item> <nord-dropdown-item>Move to folder</nord-dropdown-item> <nord-dropdown-item>Rename</nord-dropdown-item> </nord-dropdown-submenu> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"interface-delete\" size=\"s\"></nord-icon> Delete </nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: var(--n-space-xxl)\" > <nord-dropdown size=\"s\"> <nord-button slot=\"toggle\"> <nord-visually-hidden>Menu</nord-visually-hidden> <nord-icon size=\"s\" name=\"interface-menu-small\"></nord-icon> </nord-button> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> <nord-icon slot=\"start\" name=\"interface-share\" size=\"s\"></nord-icon> Share <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> <nord-dropdown-item>Send by email</nord-dropdown-item> <nord-dropdown-item>Get QR code</nord-dropdown-item> </nord-dropdown-submenu> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> <nord-icon slot=\"start\" name=\"interface-download\" size=\"s\"></nord-icon> Export <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Export as PDF</nord-dropdown-item> <nord-dropdown-item>Export as CSV</nord-dropdown-item> <nord-dropdown-item>Export as JSON</nord-dropdown-item> </nord-dropdown-submenu> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> <nord-icon slot=\"start\" name=\"interface-menu-small\" size=\"s\"></nord-icon> More options <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Duplicate</nord-dropdown-item> <nord-dropdown-item>Move to folder</nord-dropdown-item> <nord-dropdown-item>Rename</nord-dropdown-item> </nord-dropdown-submenu> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"interface-delete\" size=\"s\"></nord-icon> Delete </nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithGroups",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: var(--n-space-xxl)\" > <nord-dropdown size=\"s\"> <nord-button slot=\"toggle\">Actions</nord-button> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> Export <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-group heading=\"Formats\"> <nord-dropdown-item>PDF</nord-dropdown-item> <nord-dropdown-item>CSV</nord-dropdown-item> <nord-dropdown-item>JSON</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group heading=\"Quality\"> <nord-dropdown-item>Low</nord-dropdown-item> <nord-dropdown-item>Medium</nord-dropdown-item> <nord-dropdown-item>High</nord-dropdown-item> </nord-dropdown-group> </nord-dropdown-submenu> <nord-dropdown-item>Delete</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithCustomContent",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: var(--n-space-xxl)\" > <nord-dropdown> <nord-button slot=\"toggle\">Workspace</nord-button> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> Rename <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <div class=\"n-padding-b-s n-padding-i-m\" style=\"min-width: 240px\"> <nord-stack direction=\"vertical\" gap=\"m\"> <nord-input label=\"Name\" placeholder=\"New name\" expand></nord-input> <nord-stack class=\"n-stack-horizontal n-gap-s n-justify-end\"> <nord-button>Cancel</nord-button> <nord-button variant=\"primary\">Save</nord-button> </nord-stack> </nord-stack> </div> </nord-dropdown-submenu> <nord-dropdown-item>Delete</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "NestedSubmenus",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: var(--n-space-xxl)\" > <nord-dropdown size=\"s\"> <nord-button slot=\"toggle\"> <nord-visually-hidden>Menu</nord-visually-hidden> <nord-icon size=\"s\" name=\"interface-menu-small\"></nord-icon> </nord-button> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> <nord-icon slot=\"start\" name=\"interface-download\" size=\"s\"></nord-icon> Export <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Export as PDF</nord-dropdown-item> <nord-dropdown-item>Export as CSV</nord-dropdown-item> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> Advanced options <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Custom format</nord-dropdown-item> <nord-dropdown-item>With metadata</nord-dropdown-item> <nord-dropdown-item>Compressed</nord-dropdown-item> </nord-dropdown-submenu> </nord-dropdown-submenu> <nord-dropdown-item>Delete</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "AlwaysFloating",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: var(--n-space-xxl)\" > <nord-dropdown size=\"s\" always-floating> <nord-button slot=\"toggle\"> <nord-visually-hidden>Menu</nord-visually-hidden> <nord-icon size=\"s\" name=\"interface-menu-small\"></nord-icon> </nord-button> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> <nord-icon slot=\"start\" name=\"interface-download\" size=\"s\"></nord-icon> Export <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Export as PDF</nord-dropdown-item> <nord-dropdown-item>Export as CSV</nord-dropdown-item> <nord-dropdown-submenu> <nord-dropdown-item slot=\"trigger\"> Advanced options <nord-icon slot=\"end\" name=\"arrow-right\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item>Custom format</nord-dropdown-item> <nord-dropdown-item>With metadata</nord-dropdown-item> <nord-dropdown-item>Compressed</nord-dropdown-item> </nord-dropdown-submenu> </nord-dropdown-submenu> <nord-dropdown-item>Delete</nord-dropdown-item> </nord-dropdown> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/dropdown-submenu/DropdownSubmenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/dropdown-submenu/DropdownSubmenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/dropdown-submenu/DropdownSubmenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithGroups",
          "declaration": {
            "name": "WithGroups",
            "module": "src/dropdown-submenu/DropdownSubmenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithCustomContent",
          "declaration": {
            "name": "WithCustomContent",
            "module": "src/dropdown-submenu/DropdownSubmenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "NestedSubmenus",
          "declaration": {
            "name": "NestedSubmenus",
            "module": "src/dropdown-submenu/DropdownSubmenu.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "AlwaysFloating",
          "declaration": {
            "name": "AlwaysFloating",
            "module": "src/dropdown-submenu/DropdownSubmenu.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/dropdown-submenu/DropdownSubmenu.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Dropdown submenu nests a secondary menu within a parent dropdown.\nThe trigger slot contains the item that opens the submenu, and the default slot contains the submenu items.\n\nSupports both hover (non-touch) and click (touch-devices/accessibility) interactions.\n\nOn small screens, uses mobile stack navigation: tapping a submenu trigger replaces the\ndropdown's visible content with the submenu's items and shows a back button.",
          "name": "DropdownSubmenu",
          "slots": [
            {
              "description": "The element that opens the submenu (typically nord-dropdown-item).",
              "name": "trigger"
            },
            {
              "description": "The submenu content items.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "popout",
              "type": {
                "text": "Popout | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "popoutId",
              "privacy": "private",
              "readonly": true,
              "default": "`nord-dropdown-submenu-popout-${++popoutCounter}`"
            },
            {
              "kind": "field",
              "name": "events",
              "privacy": "private",
              "default": "new EventController(this)"
            },
            {
              "kind": "field",
              "name": "currentTriggerElement",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "popoutOpen",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "mobileMediaQuery",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "isSmallScreen",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "parentDropdownAlwaysFloating",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "parentObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "shouldUseMobileStack",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "parentDropdown",
              "type": {
                "text": "Dropdown | null"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "isInSubmenuStack",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "isDeepestInStack",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "handleTriggerSlotChange",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleTriggerMouseEnter",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleTriggerClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleTriggerKeydown",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleContentKeydown",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handlePopoutOpen",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handlePopoutClose",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleParentDropdownMouseOver",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "closeOtherSubmenus",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "close",
              "return": {
                "type": {
                  "text": "Promise<TransitionEvent | void>"
                }
              },
              "description": "Close the submenu programmatically.\nReturns a promise that resolves when the close animation completes."
            }
          ],
          "events": [
            {
              "name": "nord-submenu-navigate",
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired when mobile stack navigation activates this submenu."
            },
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Forwarded from the internal nord-popout.",
              "name": "open"
            },
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Forwarded from the internal nord-popout.",
              "name": "close"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "action",
          "readme": "# Dropdown Submenu\n\nDropdown submenu nests a secondary menu within a dropdown. It automatically handles opening on hover, closing on outside click, keyboard navigation, and manages accessibility attributes.\n\n## Usage\n\n```html\n<nord-dropdown>\n  <nord-button slot=\"toggle\">Menu</nord-button>\n\n  <nord-dropdown-submenu>\n    <nord-dropdown-item slot=\"trigger\">\n      Export\n      <nord-icon slot=\"end\" name=\"arrow-right\"></nord-icon>\n    </nord-dropdown-item>\n    <nord-dropdown-item>Export as PDF</nord-dropdown-item>\n    <nord-dropdown-item>Export as CSV</nord-dropdown-item>\n  </nord-dropdown-submenu>\n\n  <nord-dropdown-item>Delete</nord-dropdown-item>\n</nord-dropdown>\n```\n\n## Behavior\n\n- **Opens on hover (non-touch devices)** — Hovering over the trigger item opens the submenu\n- **Opens on click (touch devices & accessibility)** — Clicking the trigger toggles the submenu open/closed\n- **Keyboard navigation** — ArrowRight or Enter to open, ArrowLeft to close, first item auto-focused\n- **Closes siblings** — Opening one submenu automatically closes other open submenus\n- **Closes on regular item hover** — Hovering a non-trigger item closes the submenu\n- **Accessibility** — Automatically manages `aria-haspopup=\"menu\"` and `aria-expanded` attributes\n- **Capability-based** — Detects touch capability and adapts interaction model accordingly\n- **Mobile Sheet** — Converts to a mobile sheet stack navigation on small screens, unless the parent `nord-dropdown` has the `always-floating` property set.\n\n## Methods\n\n- `close()` — Programmatically close the submenu\n\n## Slots\n\n- `trigger` — The element that opens the submenu (typically `nord-dropdown-item`, but any element works)\n- default — The submenu content items (can be `nord-dropdown-item`, `nord-dropdown-group`, or any custom HTML/components)\n\n## Content Flexibility\n\nThe submenu slot accepts any content type, not just dropdown items. This enables use cases like:\n\n- Form inputs (checkboxes, radio buttons, inputs)\n- Custom buttons and layouts\n- Mixed content (items grouped with custom controls)\n- Any HTML structure that makes sense for your use case\n",
          "examples": [],
          "dependencies": [
            "popout"
          ],
          "tagName": "nord-dropdown-submenu",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "DropdownSubmenu",
            "module": "src/dropdown-submenu/DropdownSubmenu.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-dropdown-submenu",
          "declaration": {
            "name": "DropdownSubmenu",
            "module": "src/dropdown-submenu/DropdownSubmenu.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/empty-state/EmptyState.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Empty State', component: 'nord-empty-state', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { heading: 'Something\\'s wrong', description: 'We were unable to connect to the service. Click Retry to try again or View log to learn what happened.', }, argTypes: { heading: { control: 'text' }, description: { control: 'text' }, }, render: args => html` <nord-empty-state> <h2>${args.heading}</h2> <p>${args.description}</p> <nord-stack justify-content=\"center\" gap=\"s\" direction=\"horizontal\"> <nord-button>View log</nord-button> <nord-button variant=\"primary\">Retry</nord-button> </nord-stack> </nord-empty-state> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-empty-state> <h2>Something’s wrong</h2> <p>We were unable to connect to the service. Click Retry to try again or View log to learn what happened.</p> <nord-stack justify-content=\"center\" gap=\"s\" direction=\"horizontal\"> <nord-button>View log</nord-button> <nord-button variant=\"primary\">Retry</nord-button> </nord-stack> </nord-empty-state> `, }"
        },
        {
          "kind": "variable",
          "name": "InsideCard",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-card> <h2 slot=\"header\">Paid invoices</h2> <nord-empty-state> <h3>Something’s wrong</h3> <p>We were unable to connect to the service. Click Retry to try again or View log to learn what happened.</p> <nord-stack justify-content=\"center\" gap=\"s\" direction=\"horizontal\"> <nord-button>View log</nord-button> <nord-button variant=\"primary\">Retry</nord-button> </nord-stack> </nord-empty-state> </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "NoAccess",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-card> <nord-empty-state> <h2>You don’t have access to this content</h2> <p>Make sure the content exists. If it does, ask an admin for a permission to see the content.</p> <nord-button variant=\"primary\">Request access</nord-button> </nord-empty-state> </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "NoResults",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-card> <nord-empty-state> <h2>No results found</h2> <p>Try adjusting your search term or filter options to find what you’re looking for.</p> <nord-button variant=\"primary\">Clear filters</nord-button> </nord-empty-state> </nord-card> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/empty-state/EmptyState.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/empty-state/EmptyState.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/empty-state/EmptyState.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InsideCard",
          "declaration": {
            "name": "InsideCard",
            "module": "src/empty-state/EmptyState.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "NoAccess",
          "declaration": {
            "name": "NoAccess",
            "module": "src/empty-state/EmptyState.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "NoResults",
          "declaration": {
            "name": "NoResults",
            "module": "src/empty-state/EmptyState.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/empty-state/EmptyState.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Empty state can be used when there is no data to display to\ndescribe what the user can do next. Empty state provides\nexplanation and guidance to help user progress.",
          "name": "EmptyState",
          "slots": [
            {
              "description": "default slot",
              "name": ""
            }
          ],
          "members": [],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "feedback",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when another component or part of UI has no items or data to show.\n- Help users by clearly explaining the benefit and utility of a product or feature.\n- Be encouraging and never make users feel unsuccessful or guilty.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use as a generic banner to highlight specific content.\n\n</div>\n\n---\n\n## Content guidelines\n\nEmpty state headings should state to the user what’s wrong or why there’s no content:\n\n<div class=\"n-usage n-usage-do\">No results found</div>\n<div class=\"n-usage n-usage-dont\">Error</div>\n\nWhen writing empty state headings, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">You don’t have access to this content</div>\n<div class=\"n-usage n-usage-dont\">You Don’t Have Access To This Content</div>\n\nDescriptions in empty states should add useful and relevant additional information:\n\n<div class=\"n-usage n-usage-do\">We were unable to connect to the service. Click Retry to try again or View log to learn what happened.</div>\n<div class=\"n-usage n-usage-dont\">No connection.</div>\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">Clear filters</div>\n<div class=\"n-usage n-usage-dont\">Clear</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">View log</div>\n<div class=\"n-usage n-usage-dont\">View Log</div>\n\nAvoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Request access</div>\n<div class=\"n-usage n-usage-dont\">Request an access</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-empty-state",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "EmptyState",
            "module": "src/empty-state/EmptyState.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-empty-state",
          "declaration": {
            "name": "EmptyState",
            "module": "src/empty-state/EmptyState.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/fieldset/Fieldset.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Fieldset', component: 'nord-fieldset', tags: ['autodocs'], argTypes: { label: { control: 'text' }, hint: { control: 'text' }, error: { control: 'text' }, required: { control: 'boolean' }, hideRequired: { control: 'boolean' }, hideLabel: { control: 'boolean' }, size: { control: 'select', options: ['s', 'm'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { required: false, hideRequired: false, hideLabel: false, size: 'm', }, render: args => html` <nord-fieldset label=${args.label || nothing} hint=${args.hint || nothing} error=${args.error || nothing} ?required=${args.required} ?hide-required=${args.hideRequired} ?hide-label=${args.hideLabel} size=${args.size}><nord-checkbox label=\"Option 1\"></nord-checkbox>\\n <nord-checkbox label=\"Option 2\"></nord-checkbox></nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Fieldset label\"> <nord-stack> <nord-checkbox name=\"option\" value=\"1\" label=\"Option 1\"></nord-checkbox> <nord-checkbox name=\"option\" value=\"2\" label=\"Option 2\"></nord-checkbox> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "HiddenLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Fieldset label\" hide-label> <nord-stack> <nord-checkbox name=\"option\" value=\"1\" label=\"Option 1\"></nord-checkbox> <nord-checkbox name=\"option\" value=\"2\" label=\"Option 2\"></nord-checkbox> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "SmallSize",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"xl\"> <nord-fieldset size=\"s\" label=\"Checkboxes\"> <nord-stack gap=\"s\"> <nord-checkbox size=\"s\" checked name=\"checkbox\" value=\"1\" label=\"Option 1\"></nord-checkbox> <nord-checkbox size=\"s\" name=\"checkbox\" value=\"2\" label=\"Option 2\"></nord-checkbox> </nord-stack> </nord-fieldset> <nord-fieldset size=\"s\" label=\"Radios\"> <nord-stack gap=\"s\" direction=\"vertical\"> <nord-radio size=\"s\" checked label=\"Option 1\" name=\"radio\" value=\"1\"></nord-radio> <nord-radio size=\"s\" label=\"Option 2\" name=\"radio\" value=\"2\"></nord-radio> </nord-stack> </nord-fieldset> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Fieldset label\"> <div slot=\"hint\"> Hint is an accessible way to provide <strong>additional information</strong> that might help the user </div> <nord-stack> <nord-checkbox name=\"option\" value=\"1\" label=\"Option 1\"></nord-checkbox> <nord-checkbox name=\"option\" value=\"2\" label=\"Option 2\"></nord-checkbox> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset> <div slot=\"label\">Fieldset label <span style=\"color: var(--n-color-status-success)\">with color</span></div> <nord-stack> <nord-checkbox name=\"option\" value=\"1\" label=\"Option 1\"></nord-checkbox> <nord-checkbox name=\"option\" value=\"2\" label=\"Option 2\"></nord-checkbox> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Fieldset label\" hint=\"Hint is an accessible way to provide additional information that might help the user\" > <nord-stack> <nord-checkbox name=\"option\" value=\"1\" label=\"Option 1\"></nord-checkbox> <nord-checkbox name=\"option\" value=\"2\" label=\"Option 2\"></nord-checkbox> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "WithError",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Fieldset label\" error=\"Please select an option\"> <nord-stack> <nord-checkbox name=\"option\" value=\"1\" label=\"Option 1\"></nord-checkbox> <nord-checkbox name=\"option\" value=\"2\" label=\"Option 2\"></nord-checkbox> </nord-stack> </nord-fieldset> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/fieldset/Fieldset.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/fieldset/Fieldset.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/fieldset/Fieldset.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HiddenLabel",
          "declaration": {
            "name": "HiddenLabel",
            "module": "src/fieldset/Fieldset.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "SmallSize",
          "declaration": {
            "name": "SmallSize",
            "module": "src/fieldset/Fieldset.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexHint",
          "declaration": {
            "name": "WithAComplexHint",
            "module": "src/fieldset/Fieldset.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexLabel",
          "declaration": {
            "name": "WithAComplexLabel",
            "module": "src/fieldset/Fieldset.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAHint",
          "declaration": {
            "name": "WithAHint",
            "module": "src/fieldset/Fieldset.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithError",
          "declaration": {
            "name": "WithError",
            "module": "src/fieldset/Fieldset.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/fieldset/Fieldset.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Fieldset is used for grouping sets of input components.\nIt is necessary to use a fieldset with radio and checkbox components.\nIt can also be useful for logically grouping other types of inputs.",
          "name": "Fieldset",
          "cssProperties": [
            {
              "description": "Controls the text color of the label, using our [color tokens](/tokens/#color).",
              "name": "--n-label-color",
              "default": "var(--n-color-text)"
            }
          ],
          "slots": [
            {
              "description": "Use when a label requires more than plain text.",
              "name": "label"
            },
            {
              "description": "Optional slot that holds hint text for the fieldset.",
              "name": "hint"
            },
            {
              "description": "Optional slot that holds error text for the fieldset.",
              "name": "error"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "errorSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'error')"
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'hint')"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the fieldset. Rendered as a `<legend>` element.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "attribute": "hint",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the fieldset. Alternatively use the error slot.",
              "attribute": "error",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the fieldset is required or not.\nA fieldset marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "attribute": "required",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "attribute": "hide-required",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "attribute": "hide-label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm'"
              },
              "default": "'m'",
              "description": "The size of the label.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "hasHint",
              "privacy": "protected",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "hasError",
              "privacy": "protected",
              "readonly": true
            }
          ],
          "attributes": [
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the fieldset. Rendered as a `<legend>` element.",
              "fieldName": "label"
            },
            {
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "fieldName": "hint"
            },
            {
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the fieldset. Alternatively use the error slot.",
              "fieldName": "error"
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the fieldset is required or not.\nA fieldset marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "fieldName": "required"
            },
            {
              "name": "hide-required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "fieldName": "hideRequired"
            },
            {
              "name": "hide-label",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "fieldName": "hideLabel"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm'"
              },
              "default": "'m'",
              "description": "The size of the label.",
              "fieldName": "size"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "form",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use the fieldset component when you need to create a relationship between multiple form inputs.\n- It is especially important to use with a group of radio components.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place interactive content (buttons, links etc) inside the label.\n- Don’t use with a checkbox component when there is **only one** checkbox. For example, when accepting terms and conditions.\n\n</div>\n\n---\n\n## Content guidelines\n\nFieldset label should be clear, accurate and predictable. It should help the user to understand how the items in the fieldset are grouped together, or what kind of choice the user is making:\n\n<div class=\"n-usage n-usage-do\">Pick a color</div>\n<div class=\"n-usage n-usage-dont\">Choose</div>\n\nWhen writing fieldset labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Pick a color</div>\n<div class=\"n-usage n-usage-dont\">Pick A Color</div>\n\nAvoid ending in punctuation if it’s a single sentence, word, or a fragment:\n\n<div class=\"n-usage n-usage-do\">Pick a color</div>\n<div class=\"n-usage n-usage-dont\">Pick a color.</div>\n\nDo not use colons in fieldset label:\n\n<div class=\"n-usage n-usage-do\">Payment details</div>\n<div class=\"n-usage n-usage-dont\">Payment details:</div>\n\n---\n\n## Additional considerations\n\n- A label (which becomes to `<legend>` inside the fieldset) is always required.\n- Hint text can be used to offer further information or explanation for an option.\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-fieldset",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Fieldset",
            "module": "src/fieldset/Fieldset.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-fieldset",
          "declaration": {
            "name": "Fieldset",
            "module": "src/fieldset/Fieldset.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/footer/Footer.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Footer', component: 'nord-footer', tags: ['autodocs'], argTypes: { size: { control: 'select', options: ['m', 's'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { size: 'm', }, render: args => html` <nord-footer size=${args.size}><nord-button slot=\"start\" variant=\"primary\">Save</nord-button>\\n <nord-button slot=\"end\">Cancel</nord-button></nord-footer> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-footer> <nord-button-group variant=\"spaced\"> <nord-button>Default</nord-button> <nord-button variant=\"primary\">Primary</nord-button> </nord-button-group> </nord-footer> `, }"
        },
        {
          "kind": "variable",
          "name": "Complex",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>.footer-info { color: var(--n-color-text-weaker); font-size: var(--n-font-size-s); min-width: calc(var(--n-space-xxl) * 2); flex: 1; }</style> <nord-footer> <div class=\"footer-info\">Additional footer content</div> <nord-button-group variant=\"spaced\"> <nord-button>Default</nord-button> <nord-button variant=\"primary\">Primary</nord-button> </nord-button-group> </nord-footer> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-footer size=\"s\"> <nord-button-group variant=\"spaced\"> <nord-button size=\"s\">Default</nord-button> <nord-button size=\"s\" variant=\"primary\">Primary</nord-button> </nord-button-group> </nord-footer> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/footer/Footer.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/footer/Footer.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/footer/Footer.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Complex",
          "declaration": {
            "name": "Complex",
            "module": "src/footer/Footer.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/footer/Footer.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/footer/Footer.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "The footer is a block of designated space for providing additional information or actions that are positioned below the main content.",
          "name": "Footer",
          "cssProperties": [
            {
              "description": "Controls the inline padding around the footer’s main slot, using [spacing tokens](/tokens/#space).",
              "name": "--n-footer-padding-inline",
              "default": "var(--n-space-l)"
            },
            {
              "description": "Controls the box shadow of the footer, using [box shadow tokens](/tokens/#box-shadow).",
              "name": "--n-footer-box-shadow",
              "default": "var(--n-box-shadow-header)"
            },
            {
              "description": "Controls the background color of the footer, using [color tokens](/tokens/#color).",
              "name": "--n-footer-background-color",
              "default": "var(--n-color-surface)"
            }
          ],
          "slots": [
            {
              "description": "The footer content.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'m' | 's'"
              },
              "default": "'m'",
              "description": "Controls the size of the footer component.",
              "attribute": "size",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "size",
              "type": {
                "text": "'m' | 's'"
              },
              "default": "'m'",
              "description": "Controls the size of the footer component.",
              "fieldName": "size"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "new",
          "category": "structure",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use the footer component to show actions for a stepped workflow.\n- Use the footer component to provide additional information or actions that are positioned below the main content.\n- The footer component can also be used within Nord to provide a layer of actions or information at the bottom of a component. It’s currently used internally in the [modal](/components/modal/) and [drawer components](/components/drawer/).\n- When using the footer component within the [layout component](/components/layout/?example=footer), you can make the footer sticky by using the provided `stickyFooter` property of the layout component. [View an example](/components/layout/?example=footer).\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t overcrowd the footer with too many actions or information.\n- Don’t nest the footer deeply and restrict its available space.\n- Don’t add large amounts of content or long paragraphs. Aim for actions that are short and concise.\n\n</div>\n\n---\n\n## Content guidelines\n\nFooter action labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">Create client</div>\n<div class=\"n-usage n-usage-dont\">Click here</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Add item</div>\n<div class=\"n-usage n-usage-dont\">Add an item</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-footer",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Footer",
            "module": "src/footer/Footer.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-footer",
          "declaration": {
            "name": "Footer",
            "module": "src/footer/Footer.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/header/Header.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Header', component: 'nord-header', tags: ['autodocs'], argTypes: { size: { control: 'select', options: ['m', 's'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { size: 'm', }, render: args => html` <nord-header size=${args.size}><h1 slot=\"title\">Page Title</h1></nord-header> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-header> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button-group slot=\"end\" variant=\"spaced\"> <nord-button>Export</nord-button> <nord-button variant=\"primary\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> </nord-button-group> </nord-header> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-header size=\"s\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button-group slot=\"end\" variant=\"spaced\"> <nord-button size=\"s\">Export</nord-button> <nord-button size=\"s\" variant=\"primary\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> </nord-button-group> </nord-header> `, }"
        },
        {
          "kind": "variable",
          "name": "WithFilterAndTooltip",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-header> <h1 class=\"n-typescale-l\">Payments</h1> <nord-button aria-describedby=\"filter\" variant=\"dashed\" size=\"s\"> <nord-icon slot=\"start\" name=\"interface-filter\"></nord-icon> Filter </nord-button> <nord-tooltip id=\"filter\" position=\"block-end\"> Filter <nord-icon slot=\"shortcut\" name=\"keyboard-option\" label=\"Option key\"></nord-icon> <span slot=\"shortcut\">F</span> </nord-tooltip> <nord-button-group slot=\"end\" variant=\"spaced\"> <nord-button aria-describedby=\"export\">Export</nord-button> <nord-button variant=\"primary\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> </nord-button-group> <nord-tooltip id=\"export\" position=\"block-end\">Export data as Spreadsheet</nord-tooltip> </nord-header> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/header/Header.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/header/Header.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/header/Header.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/header/Header.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithFilterAndTooltip",
          "declaration": {
            "name": "WithFilterAndTooltip",
            "module": "src/header/Header.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/header/Header.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "The header is a block of designated space for labelling the currently\nviewed context as well as providing primary actions.",
          "name": "Header",
          "slots": [
            {
              "description": "The header content.",
              "name": ""
            },
            {
              "description": "Optional slot for buttons, toggles, etc.",
              "name": "end"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "endSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'end')"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'m' | 's'"
              },
              "default": "'m'",
              "description": "Controls the size of the header component.",
              "attribute": "size",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "size",
              "type": {
                "text": "'m' | 's'"
              },
              "default": "'m'",
              "description": "Controls the size of the header component.",
              "fieldName": "size"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "structure",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use the header component to show a heading to describe the current view.\n- Use the header component to hold primary actions.\n- Use the header component at a visual high position at full width.\n- Utilise the [`n-truncate`](/css/#miscellaneous-utilities) CSS helper to prevent long headings from wrapping.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t overcrowd the header component with too many actions or information.\n- Don’t nest the header component too deeply and restrict its available space.\n- Don’t add large amounts of content or long headings. Aim for headings that are short and concise.\n\n</div>\n\n---\n\n## Content guidelines\n\nThe header component should be a containing element placed high on the page to present high level controls and to describe the page itself. It shouldn’t be overcrowded with controls or information.\n\n<div class=\"n-usage n-usage-do\">[Menu] Dashboard  [Account] [Log out]</div>\n<div class=\"n-usage n-usage-dont\">[Menu] Use the cards below to view various information [Export] [Save] [Edit Profile] [Log out] [Preferences]</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-header",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Header",
            "module": "src/header/Header.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-header",
          "declaration": {
            "name": "Header",
            "module": "src/header/Header.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/icon/Icon.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Icon', component: 'nord-icon', tags: ['autodocs'], argTypes: { name: { control: 'text' }, size: { control: 'select', options: ['xxs', 'xs', 's', 'm', 'l', 'xl', 'xxl'], }, color: { control: 'text' }, label: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { name: 'arrow-down', size: 'm', }, render: args => html` <nord-icon name=${args.name || nothing} size=${args.size} color=${args.color || nothing} label=${args.label || nothing}></nord-icon> `, }"
        },
        {
          "kind": "variable",
          "name": "AnimalCategories",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-stack style=\"color: var(--n-color-icon)\" direction=\"horizontal\" align-items=\"center\" wrap> <nord-icon name=\"generic-amphibia\" size=\"s\"></nord-icon> <nord-icon name=\"generic-arachnida\" size=\"s\"></nord-icon> <nord-icon name=\"generic-birds\" size=\"s\"></nord-icon> <nord-icon name=\"generic-canine\" size=\"s\"></nord-icon> <nord-icon name=\"generic-cattle\" size=\"s\"></nord-icon> <nord-icon name=\"generic-equidae\" size=\"s\"></nord-icon> <nord-icon name=\"generic-feline\" size=\"s\"></nord-icon> <nord-icon name=\"generic-fish\" size=\"s\"></nord-icon> <nord-icon name=\"generic-leporidae\" size=\"s\"></nord-icon> <nord-icon name=\"generic-reptilia\" size=\"s\"></nord-icon> <nord-icon name=\"generic-rodents\" size=\"s\"></nord-icon> <nord-icon name=\"generic-sheep\" size=\"s\"></nord-icon> <nord-icon name=\"generic-suidae\" size=\"s\"></nord-icon> </nord-stack> <nord-stack style=\"color: var(--n-color-icon)\" direction=\"horizontal\" align-items=\"center\" wrap> <nord-icon name=\"generic-amphibia\" size=\"m\"></nord-icon> <nord-icon name=\"generic-arachnida\" size=\"m\"></nord-icon> <nord-icon name=\"generic-birds\" size=\"m\"></nord-icon> <nord-icon name=\"generic-canine\" size=\"m\"></nord-icon> <nord-icon name=\"generic-cattle\" size=\"m\"></nord-icon> <nord-icon name=\"generic-equidae\" size=\"m\"></nord-icon> <nord-icon name=\"generic-feline\" size=\"m\"></nord-icon> <nord-icon name=\"generic-fish\" size=\"m\"></nord-icon> <nord-icon name=\"generic-leporidae\" size=\"m\"></nord-icon> <nord-icon name=\"generic-reptilia\" size=\"m\"></nord-icon> <nord-icon name=\"generic-rodents\" size=\"m\"></nord-icon> <nord-icon name=\"generic-sheep\" size=\"m\"></nord-icon> <nord-icon name=\"generic-suidae\" size=\"m\"></nord-icon> </nord-stack> <nord-stack style=\"color: var(--n-color-icon)\" direction=\"horizontal\" align-items=\"center\" wrap> <nord-icon name=\"generic-amphibia\" size=\"l\"></nord-icon> <nord-icon name=\"generic-arachnida\" size=\"l\"></nord-icon> <nord-icon name=\"generic-birds\" size=\"l\"></nord-icon> <nord-icon name=\"generic-canine\" size=\"l\"></nord-icon> <nord-icon name=\"generic-cattle\" size=\"l\"></nord-icon> <nord-icon name=\"generic-equidae\" size=\"l\"></nord-icon> <nord-icon name=\"generic-feline\" size=\"l\"></nord-icon> <nord-icon name=\"generic-fish\" size=\"l\"></nord-icon> <nord-icon name=\"generic-leporidae\" size=\"l\"></nord-icon> <nord-icon name=\"generic-reptilia\" size=\"l\"></nord-icon> <nord-icon name=\"generic-rodents\" size=\"l\"></nord-icon> <nord-icon name=\"generic-sheep\" size=\"l\"></nord-icon> <nord-icon name=\"generic-suidae\" size=\"l\"></nord-icon> </nord-stack> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-icon size=\"xxl\" name=\"navigation-dashboard\"></nord-icon>`, }"
        },
        {
          "kind": "variable",
          "name": "Color",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" align-items=\"center\"> <nord-icon size=\"s\" name=\"interface-star-filled\" color=\"var(--n-color-status-success)\"></nord-icon> <nord-icon size=\"m\" name=\"interface-star-filled\" color=\"var(--n-color-status-danger)\"></nord-icon> <nord-icon size=\"l\" name=\"interface-star-filled\" color=\"var(--n-color-status-warning)\"></nord-icon> <nord-icon size=\"xl\" name=\"interface-star-filled\" color=\"var(--n-color-status-highlight)\"></nord-icon> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomIcon",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-icon> <svg viewBox=\"0 0 140 140\" xmlns=\"http://www.w3.org/2000/svg\"> <path fill=\"currentColor\" d=\"M41.86 131.25a23.982 23.982 0 0 1-18.494-8.666L2.254 95.746a10.5 10.5 0 1 1 16.492-12.992l21 26.6a2.24 2.24 0 0 0 2.212.882 3.038 3.038 0 0 0 2.38-1.148l76.958-96.39a10.5 10.5 0 1 1 16.408 13.104L60.606 122.29A24.038 24.038 0 0 1 42 131.25z\" ></path> </svg> </nord-icon> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomResolver",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-icon size=\"l\" name=\"navigation-dashboard\"></nord-icon>` customElements.whenDefined('nord-icon').then(() => { const Icon = customElements.get('nord-icon') Icon.registerResolver(name => fetch(`https://unpkg.com/@nordhealth/icons@1.8.0/lib/assets/${name}.svg`).then(response => response.text()), ) }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Sizes",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" align-items=\"center\"> <nord-icon name=\"interface-star\" size=\"xxs\"></nord-icon> <nord-icon name=\"interface-star\" size=\"xs\"></nord-icon> <nord-icon name=\"interface-star\" size=\"s\"></nord-icon> <nord-icon name=\"interface-star\" size=\"m\"></nord-icon> <nord-icon name=\"interface-star\" size=\"l\"></nord-icon> <nord-icon name=\"interface-star\" size=\"xl\"></nord-icon> <nord-icon name=\"interface-star\" size=\"xxl\"></nord-icon> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Static",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-stack direction=\"horizontal\" align-items=\"center\"> <nord-icon name=\"navigation-search\" size=\"l\"></nord-icon> <nord-icon name=\"interface-checked\" size=\"l\"></nord-icon> </nord-stack>` customElements.whenDefined('nord-icon').then(() => { const Icon = customElements.get('nord-icon') as typeof import('./Icon.js').default // register name and icon separately Icon.registerIcon(searchIconModule.title, searchIconModule.default) // or, register name and icon at once Icon.registerIcon(checkedIconModule as unknown as { title: string, default: string }) }) return container }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/icon/Icon.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/icon/Icon.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "AnimalCategories",
          "declaration": {
            "name": "AnimalCategories",
            "module": "src/icon/Icon.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/icon/Icon.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Color",
          "declaration": {
            "name": "Color",
            "module": "src/icon/Icon.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomIcon",
          "declaration": {
            "name": "CustomIcon",
            "module": "src/icon/Icon.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomResolver",
          "declaration": {
            "name": "CustomResolver",
            "module": "src/icon/Icon.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Sizes",
          "declaration": {
            "name": "Sizes",
            "module": "src/icon/Icon.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Static",
          "declaration": {
            "name": "Static",
            "module": "src/icon/Icon.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/icon/Icon.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Icons are used to provide additional meaning or in places where text label doesn’t fit.\nIcon component allows you to display an icon from the Nordicons library.",
          "name": "Icon",
          "slots": [
            {
              "description": "The default slot used for placing a custom SVG icon.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "manager",
              "privacy": "private",
              "static": true,
              "default": "new IconManager()"
            },
            {
              "kind": "method",
              "name": "registerResolver",
              "static": true,
              "parameters": [
                {
                  "name": "resolver",
                  "type": {
                    "text": "IconResolver"
                  },
                  "description": "The resolver function to register."
                }
              ],
              "description": "Register a custom icon resolver, which accepts the icon name as an parameter, and returns an SVG string.\nCan return a string synchronously, or a promise of a string.\nBy default, will load icons from the Nord CDN."
            },
            {
              "kind": "method",
              "name": "registerIcon",
              "static": true,
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "icon",
                  "type": {
                    "text": "{ title: string, default: string }"
                  },
                  "description": "An object representing the icon to be registered, where \"title\" is the icon's name, and \"default\" is the SVG string.\nThis is intended to be used in cases where you import an icon's entire ES module and register it directly."
                }
              ],
              "description": "Register an individual icon so it can be rendered synchronously, to avoid loading over the network."
            },
            {
              "kind": "method",
              "name": "registerIcon",
              "static": true,
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  },
                  "description": "The name of the icon to be registered."
                },
                {
                  "name": "icon",
                  "type": {
                    "text": "string"
                  },
                  "description": "The SVG string for the icon."
                }
              ],
              "description": "Register an individual icon so it can be rendered synchronously, to avoid loading over the network."
            },
            {
              "kind": "method",
              "name": "registerIcon",
              "static": true,
              "parameters": [
                {
                  "name": "iconOrName",
                  "type": {
                    "text": "string | { title: string, default: string }"
                  },
                  "description": "The name of the icon to be registered or an object representing the icon to be registered, where \"title\" is the icon's name, and \"default\" is the SVG string."
                },
                {
                  "name": "icon",
                  "optional": true,
                  "type": {
                    "text": "string"
                  },
                  "description": "The SVG string for the icon."
                }
              ],
              "description": "Register an individual icon so it can be rendered synchronously, to avoid loading over the network."
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The name of the icon to display, as defined by [nordicons](/nordicons/).",
              "attribute": "name",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl' | undefined"
              },
              "description": "The size of the icon.",
              "default": "\"m\"",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "color",
              "type": {
                "text": "string | undefined"
              },
              "description": "The color of the icon.\nCan accept any valid CSS color value, including custom properties.",
              "attribute": "color",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "An accessible label for the icon.\nIf no label is supplied, the icon is hidden from assistive technology.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "svg",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "method",
              "name": "handleNameChange",
              "privacy": "protected"
            }
          ],
          "attributes": [
            {
              "name": "name",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The name of the icon to display, as defined by [nordicons](/nordicons/).",
              "fieldName": "name"
            },
            {
              "name": "size",
              "type": {
                "text": "'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl' | undefined"
              },
              "description": "The size of the icon.",
              "default": "\"m\"",
              "fieldName": "size"
            },
            {
              "name": "color",
              "type": {
                "text": "string | undefined"
              },
              "description": "The color of the icon.\nCan accept any valid CSS color value, including custom properties.",
              "fieldName": "color"
            },
            {
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "An accessible label for the icon.\nIf no label is supplied, the icon is hidden from assistive technology.",
              "fieldName": "label"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "image",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<nord-button href=\"/nordicons/\" variant=\"primary\">View Nordicons</nord-button>\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide additional meaning in addition to a text label.\n- Use to help users who have difficulties with reading and attention.\n- Use in places where text label doesn’t fit (remember to add an accessible label for the icon).\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for decorative purposes alone.\n- Don’t use when a button’s action is already clear based on the text label.\n- Don’t use the same icon for differing purposes, as users will come to associate icons with specific types of actions.\n\n</div>\n\n---\n\n## Additional considerations\n\n- Icon components are hidden from assistive technologies by default.\n- Use `label` property to give an accessible label for the icon and to make it visible to assistive technologies.\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-icon",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Icon",
            "module": "src/icon/Icon.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-icon",
          "declaration": {
            "name": "Icon",
            "module": "src/icon/Icon.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/icon/IconManager.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "IconManager",
          "members": [
            {
              "kind": "field",
              "name": "cache",
              "privacy": "private",
              "default": "new Map<string, string | Promise<string>>()"
            },
            {
              "kind": "field",
              "name": "resolver",
              "type": {
                "text": "IconResolver"
              }
            },
            {
              "kind": "method",
              "name": "resolve",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "onResolved",
                  "type": {
                    "text": "(svg: string) => void"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "registerIcon",
              "parameters": [
                {
                  "name": "iconOrName",
                  "type": {
                    "text": "string | { title: string, default: string }"
                  }
                },
                {
                  "name": "icon",
                  "optional": true,
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "clear"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "IconManager",
          "declaration": {
            "name": "IconManager",
            "module": "src/icon/IconManager.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/input/Input.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Input', component: 'nord-input', tags: ['autodocs'], argTypes: { expand: { control: 'boolean' }, disallowPattern: { control: 'text' }, inputmode: { control: 'text' }, size: { control: 'select', options: ['s', 'm', 'l'], }, label: { control: 'text' }, hint: { control: 'text' }, hideLabel: { control: 'boolean' }, placeholder: { control: 'text' }, error: { control: 'text' }, required: { control: 'boolean' }, hideRequired: { control: 'boolean' }, autocomplete: { control: 'text' }, readonly: { control: 'boolean' }, disabled: { control: 'boolean' }, name: { control: 'text' }, value: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { expand: false, size: 'm', hideLabel: false, required: false, hideRequired: false, autocomplete: 'off', readonly: false, disabled: false, }, render: args => html` <nord-input ?expand=${args.expand} disallow-pattern=${args.disallowPattern || nothing} inputmode=${args.inputmode || nothing} size=${args.size} label=${args.label || nothing} hint=${args.hint || nothing} ?hide-label=${args.hideLabel} placeholder=${args.placeholder || nothing} error=${args.error || nothing} ?required=${args.required} ?hide-required=${args.hideRequired} autocomplete=${args.autocomplete || nothing} ?readonly=${args.readonly} ?disabled=${args.disabled} name=${args.name || nothing} value=${args.value || nothing}></nord-input> `, }"
        },
        {
          "kind": "variable",
          "name": "Autocomplete",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-input label=\"Email\" type=\"email\" name=\"email\" autocomplete=\"email\"></nord-input> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-input label=\"Label\" value=\"Value\"></nord-input>`, }"
        },
        {
          "kind": "variable",
          "name": "CustomButton",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<style>[type=\"password\"] nord-icon[name=\"interface-edit-off\"], [type=\"text\"] nord-icon[name=\"interface-edit-on\"] { display: none; }</style> <nord-stack> <nord-input label=\"Password\" value=\"Secret password 123\" type=\"password\"> <nord-button slot=\"end\" aria-describedby=\"password-tooltip\" square> <nord-icon name=\"interface-edit-on\"></nord-icon> <nord-icon name=\"interface-edit-off\"></nord-icon> </nord-button> </nord-input> <nord-tooltip id=\"password-tooltip\">Show / hide password</nord-tooltip> <nord-input label=\"API key\" value=\"SUPERSECRETCODE\" type=\"password\"> <nord-button slot=\"start\" aria-describedby=\"api-tooltip\" square> <nord-icon name=\"interface-edit-on\"></nord-icon> <nord-icon name=\"interface-edit-off\"></nord-icon> </nord-button> </nord-input> <nord-tooltip id=\"api-tooltip\">Show / hide API key</nord-tooltip> <nord-input label=\"Pet name\" value=\"Norfryd\" type=\"text\"> <nord-dropdown slot=\"start\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"pet-tooltip\" square> <nord-icon name=\"generic-feline\"></nord-icon> </nord-button> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"generic-feline\"></nord-icon> Feline </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"generic-birds\"></nord-icon> Bird </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"generic-fish\"></nord-icon> Fish </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"generic-canine\"></nord-icon> Canine </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"generic-amphibia\"></nord-icon> Amphibia </nord-dropdown-item> </nord-dropdown> </nord-input> <nord-tooltip id=\"pet-tooltip\">Select an icon for your pet</nord-tooltip> <nord-input label=\"Livestock\" value=\"Q4 2022\" type=\"text\"> <nord-dropdown slot=\"end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"livestock-tooltip\" square> <nord-icon name=\"generic-cattle\"></nord-icon> </nord-button> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"generic-cattle\"></nord-icon> Cattle </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"generic-suidae\"></nord-icon> Suidae </nord-dropdown-item> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"generic-sheep\"></nord-icon> Sheep </nord-dropdown-item> </nord-dropdown> </nord-input> <nord-tooltip id=\"livestock-tooltip\">Select an icon for your livestock</nord-tooltip> </nord-stack>` const hiddenInputs = container.querySelectorAll('nord-input[type=\\'password\\']') hiddenInputs.forEach((input) => { input.addEventListener('click', () => { if (event.target.localName !== 'nord-button') return input.type = input.type == 'password' ? 'text' : 'password' }) }) const dropdowns = container.querySelectorAll('nord-dropdown') dropdowns.forEach((dropdown) => { dropdown.addEventListener('click', (event) => { if (event.target.localName === 'nord-button') return const icon = event.target.querySelector('nord-icon').getAttribute('name') dropdown.querySelector('[slot=\\'toggle\\'] nord-icon').setAttribute('name', icon) dropdown.hide() }) }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "CustomIcon",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-input label=\"Custom icon\"> <nord-icon slot=\"start\" name=\"generic-telephone\"></nord-icon> </nord-input> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomWidth",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-input style=\"--n-input-inline-size: 65px\" label=\"Size\" value=\"65px\"></nord-input> <nord-input style=\"--n-input-inline-size: 150px\" label=\"Size\" value=\"150px\"></nord-input> <nord-input label=\"Size\" value=\"Default\"></nord-input> <nord-input label=\"Size\" value=\"Expand to fill the available width\" expand></nord-input> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-input label=\"Label\" value=\"Some value\" disabled></nord-input> <nord-input label=\"Amount\" value=\"20.00\" disabled> <div slot=\"start\">£</div> </nord-input> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "DisallowPattern",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-input label=\"Numbers only\" disallow-pattern=\"[^0-9]\"></nord-input>`, }"
        },
        {
          "kind": "variable",
          "name": "Expanded",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-input label=\"First name\" expand></nord-input>`, }"
        },
        {
          "kind": "variable",
          "name": "HiddenLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-input label=\"Search\" type=\"search\" placeholder=\"Filter icons by name and tags\" expand hide-label></nord-input> `, }"
        },
        {
          "kind": "variable",
          "name": "InputMask",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-input label=\"Time\" hint=\"Time must be in 2-digit hours and 2-digit minutes.\" placeholder=\"HH:MM\" type=\"number\"> <nord-icon slot=\"end\" name=\"interface-time\"></nord-icon> </nord-input>` applyTimeMask(container.querySelector('nord-input')!) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Inputmode",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"vertical\" gap=\"m\"> <h3>Default inputmode based on type</h3> <nord-input label=\"Number type (default: inputmode='numeric')\" type=\"number\" placeholder=\"Automatically shows numeric keyboard\" ></nord-input> <nord-input label=\"Email type (default: inputmode='email')\" type=\"email\" placeholder=\"Automatically shows email keyboard\" ></nord-input> <nord-input label=\"Telephone type (default: inputmode='tel')\" type=\"tel\" placeholder=\"Automatically shows telephone keyboard\" ></nord-input> <nord-input label=\"URL type (default: inputmode='url')\" type=\"url\" placeholder=\"Automatically shows URL keyboard\" ></nord-input> <nord-input label=\"Search type (default: inputmode='search')\" type=\"search\" placeholder=\"Automatically shows search keyboard\" ></nord-input> <h3>Custom inputmode overrides</h3> <nord-input label=\"Number type with decimal inputmode (inputmode='decimal')\" type=\"number\" inputmode=\"decimal\" placeholder=\"Overrides default numeric with decimal\" ></nord-input> <nord-input label=\"Text type with numeric inputmode (inputmode='numeric')\" type=\"text\" inputmode=\"numeric\" placeholder=\"Custom inputmode on text type\" ></nord-input> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Readonly",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-input label=\"Readonly\" value=\"Value\" readonly></nord-input>`, }"
        },
        {
          "kind": "variable",
          "name": "Required",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-input label=\"Required\" required value=\"Value\"></nord-input>`, }"
        },
        {
          "kind": "variable",
          "name": "Search",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-input type=\"search\" placeholder=\"Search and filter\" label=\"Search\" hide-label></nord-input> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-input size=\"s\" label=\"Email\" type=\"email\" placeholder=\"user@example.com\"></nord-input> <nord-input size=\"m\" label=\"Email\" type=\"email\" placeholder=\"user@example.com\"></nord-input> <nord-input size=\"l\" label=\"Email\" type=\"email\" placeholder=\"user@example.com\"></nord-input> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "SmallWithCustomLabelColor",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-input style=\"--n-label-color: var(--n-color-text-weaker)\" size=\"s\" label=\"Email\" type=\"email\" placeholder=\"you@example.com\" ></nord-input> `, }"
        },
        {
          "kind": "variable",
          "name": "Stepper",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-stack> <nord-input label=\"Amount\" value=\"3\" type=\"number\" disallow-pattern=\"[^0-9]\" style=\"--n-input-inline-size: 130px; --n-input-text-align: center\" > <nord-button slot=\"start\" aria-describedby=\"decrease-tooltip\" tabindex=\"-1\" square> <nord-icon name=\"interface-remove\"></nord-icon> </nord-button> <nord-button slot=\"end\" aria-describedby=\"increase-tooltip\" tabindex=\"-1\" square> <nord-icon name=\"interface-add\"></nord-icon> </nord-button> </nord-input> <nord-tooltip id=\"decrease-tooltip\">Decrease amount</nord-tooltip> <nord-tooltip id=\"increase-tooltip\">Increase amount</nord-tooltip> </nord-stack>` const input = container.querySelector('nord-input') const decreaseButton = container.querySelector('nord-button[slot=\\'start\\']') const increaseButton = container.querySelector('nord-button[slot=\\'end\\']') function decrease() { const currentValue = Number.parseInt(input.value) if (currentValue > 0) { input.value = currentValue - 1 } } function increase() { const currentValue = Number.parseInt(input.value) input.value = currentValue + 1 } decreaseButton.addEventListener('click', decrease) increaseButton.addEventListener('click', increase) input.addEventListener('keydown', (event) => { // When arrow down is pressed if (event.keyCode === 40) { event.preventDefault() decrease() } // When arrow up is pressed if (event.keyCode === 38) { event.preventDefault() increase() } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "TextSelection",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-stack> <nord-input label=\"Text selection\" value=\"Norfryd\"></nord-input> <nord-stack direction=\"horizontal\" gap=\"s\"> <nord-button-group> <nord-button id=\"select-all-button\" size=\"s\">Select all</nord-button> <nord-button id=\"select-range-button\" size=\"s\">Select range</nord-button> </nord-button-group> <nord-button-group> <nord-button id=\"replace-selection-button\" size=\"s\">Replace selection</nord-button> <nord-button id=\"remove-selection-button\" size=\"s\">Remove selection</nord-button> </nord-button-group> </nord-stack> </nord-stack>` const input = container.querySelector('nord-input') const selectAllButton = container.querySelector('#select-all-button') const selectRangeButton = container.querySelector('#select-range-button') const replaceSelectionButton = container.querySelector('#replace-selection-button') const removeSelectionButton = container.querySelector('#remove-selection-button') selectAllButton.addEventListener('click', () => { input.select() input.focus() }) selectRangeButton.addEventListener('click', () => { input.setSelectionRange(3, 6) input.focus() }) replaceSelectionButton.addEventListener('click', () => { input.setRangeText('foo') input.focus() }) removeSelectionButton.addEventListener('click', () => { input.setRangeText('') input.focus() }) input.addEventListener('blur', () => { console.log('selectionStart', input.selectionStart) console.log('selectionEnd', input.selectionEnd) }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Units",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-input type=\"unit\" placeholder=\"1234\" label=\"Size\"> <div slot=\"end\">cm</div> </nord-input> <nord-input type=\"unit\" placeholder=\"1234\" label=\"Distance\"> <div slot=\"end\">km</div> </nord-input> <nord-input type=\"unit\" placeholder=\"12.00\" label=\"USD\" style=\"--n-input-text-align: start\"> <div slot=\"start\">$</div> </nord-input> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-input label=\"Label\" expand> <div slot=\"hint\"> Hint is an accessible way to provide <strong>additional information</strong> that might help the user </div> </nord-input> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-input> <div slot=\"label\">Label <span style=\"color: var(--n-color-status-success)\">with color</span></div> </nord-input> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-input label=\"Label\" hint=\"Hint is an accessible way to provide additional information that might help the user\" expand ></nord-input> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAPlaceholder",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-input label=\"First name\" placeholder=\"e.g. John\"></nord-input>`, }"
        },
        {
          "kind": "variable",
          "name": "WithAPrefixOrSuffix",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-input label=\"With prefix\"> <div slot=\"start\">$</div> </nord-input> <nord-input label=\"With suffix\"> <div slot=\"end\">cm</div> </nord-input> <nord-input label=\"Dosage\"> <div slot=\"end\">mL per hour</div> </nord-input> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithError",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-input label=\"Label\" error=\"This field is required\"></nord-input>`, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Autocomplete",
          "declaration": {
            "name": "Autocomplete",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomButton",
          "declaration": {
            "name": "CustomButton",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomIcon",
          "declaration": {
            "name": "CustomIcon",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomWidth",
          "declaration": {
            "name": "CustomWidth",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "DisallowPattern",
          "declaration": {
            "name": "DisallowPattern",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Expanded",
          "declaration": {
            "name": "Expanded",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HiddenLabel",
          "declaration": {
            "name": "HiddenLabel",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InputMask",
          "declaration": {
            "name": "InputMask",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Inputmode",
          "declaration": {
            "name": "Inputmode",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Readonly",
          "declaration": {
            "name": "Readonly",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Search",
          "declaration": {
            "name": "Search",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "SmallWithCustomLabelColor",
          "declaration": {
            "name": "SmallWithCustomLabelColor",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Stepper",
          "declaration": {
            "name": "Stepper",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TextSelection",
          "declaration": {
            "name": "TextSelection",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Units",
          "declaration": {
            "name": "Units",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexHint",
          "declaration": {
            "name": "WithAComplexHint",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexLabel",
          "declaration": {
            "name": "WithAComplexLabel",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAHint",
          "declaration": {
            "name": "WithAHint",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAPlaceholder",
          "declaration": {
            "name": "WithAPlaceholder",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAPrefixOrSuffix",
          "declaration": {
            "name": "WithAPrefixOrSuffix",
            "module": "src/input/Input.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithError",
          "declaration": {
            "name": "WithError",
            "module": "src/input/Input.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/input/Input.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Inputs are used to allow users to provide text input when the expected input is short.\nAs well as plain text, Input supports various types of text, including passwords and numbers.",
          "name": "Input",
          "cssProperties": [
            {
              "description": "Controls the inline size, or width, of the input.",
              "name": "--n-input-inline-size",
              "default": "240px"
            },
            {
              "description": "Controls the background of the input, using our [color tokens](/tokens/#color).",
              "name": "--n-input-background",
              "default": "var(--n-color-active)"
            },
            {
              "description": "Controls the text color of the input, using our [color tokens](/tokens/#color).",
              "name": "--n-input-color",
              "default": "var(--n-color-text)"
            },
            {
              "description": "Controls the border color of the input, using our [color tokens](/tokens/#color).",
              "name": "--n-input-border-color",
              "default": "var(--n-color-border-strong)"
            },
            {
              "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
              "name": "--n-input-border-radius",
              "default": "var(--n-border-radius-s)"
            },
            {
              "description": "Controls the alignment of text within the input itself.",
              "name": "--n-input-text-align",
              "default": "start"
            },
            {
              "description": "Controls the text color of the label, using our [color tokens](/tokens/#color).",
              "name": "--n-label-color",
              "default": "var(--n-color-text)"
            }
          ],
          "slots": [
            {
              "description": "Use when a label requires more than plain text.",
              "name": "label"
            },
            {
              "description": "Optional slot that holds hint text for the input.",
              "name": "hint"
            },
            {
              "description": "Optional slot that holds error text for the input.",
              "name": "error"
            },
            {
              "description": "Optional slot used to place an icon or prefix at the start of the input.",
              "name": "start"
            },
            {
              "description": "Optional slot used to place an icon or suffix at the end of the input.",
              "name": "end"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "startSlot",
              "type": {
                "text": "HTMLSlotElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "endSlot",
              "type": {
                "text": "HTMLSlotElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "startObserver",
              "privacy": "private",
              "default": "new ResizeController(this, () => this.startSlot)"
            },
            {
              "kind": "field",
              "name": "endObserver",
              "privacy": "private",
              "default": "new ResizeController(this, () => this.endSlot)"
            },
            {
              "kind": "field",
              "name": "direction",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "| 'text'\n    | 'email'\n    | 'password'\n    | 'tel'\n    | 'url'\n    | 'search'\n    | 'number'\n    | 'unit'\n    | 'button'"
              },
              "default": "'text'",
              "description": "The type of the input.",
              "attribute": "type",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the input expands to fill the width of its container.",
              "attribute": "expand",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "disallowPattern",
              "type": {
                "text": "string | undefined"
              },
              "default": "undefined",
              "description": "Optionally disallow certain characters from being used inside the input, using a regex pattern.",
              "attribute": "disallow-pattern",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "inputmode",
              "type": {
                "text": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url' | undefined"
              },
              "default": "undefined",
              "description": "The inputmode attribute provides a hint to the browser about what type of keyboard to open on mobile devices.\nValid values: none, text, decimal, numeric, tel, search, email, url\nWhen not explicitly set, defaults based on input type:\n- type=\"number\" → inputmode=\"numeric\"\n- type=\"email\" → inputmode=\"email\"\n- type=\"tel\" → inputmode=\"tel\"\n- type=\"url\" → inputmode=\"url\"\n- type=\"search\" → inputmode=\"search\"\nCan be explicitly overridden for any type.",
              "attribute": "inputmode",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleKeydown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleInputChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleSelect",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "attribute": "size",
              "reflects": true,
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "labelSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'label')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'error')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'hint')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formData",
              "privacy": "protected",
              "default": "new FormDataController(this, { value: () => this.formValue })",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formValue",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'input'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'error'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'hint'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "attribute": "label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "attribute": "hint",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "attribute": "hide-label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "attribute": "placeholder",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "attribute": "error",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "attribute": "required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "attribute": "hide-required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "additionalContent",
                  "optional": true,
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderError",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getInvalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasHint",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasError",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              },
              "default": "'off'",
              "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
              "attribute": "autocomplete",
              "inheritedFrom": {
                "name": "AutocompleteMixin",
                "module": "src/common/mixins/AutocompleteMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
              "attribute": "readonly",
              "reflects": true,
              "inheritedFrom": {
                "name": "ReadonlyMixin",
                "module": "src/common/mixins/ReadonlyMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "textSelectableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "selectionStart",
              "description": "Gets or sets the starting position or offset of a text selection.\n\n[MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/selectionStart)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "selectionEnd",
              "description": "Gets or sets the end position or offset of a text selection.\n\n[MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/selectionEnd)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "selectionDirection",
              "description": "Gets or sets the direction in which selection occurred.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/selectionDirection)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "select",
              "description": "Selects all the text in the text field.\n\n[MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "setSelectionRange",
              "parameters": [
                {
                  "name": "start",
                  "type": {
                    "text": "number | null"
                  },
                  "description": "The offset into the text field for the start of the selection."
                },
                {
                  "name": "end",
                  "type": {
                    "text": "number | null"
                  },
                  "description": "The offset into the text field for the end of the selection."
                },
                {
                  "name": "direction",
                  "optional": true,
                  "type": {
                    "text": "'forward' | 'backward' | 'none'"
                  },
                  "description": "The direction in which the selection is performed."
                }
              ],
              "description": "Sets the start and end positions of a selection in the text field.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setSelectionRange)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "setRangeText",
              "parameters": [
                {
                  "name": "replacement",
                  "type": {
                    "text": "string"
                  },
                  "description": "The string to insert."
                },
                {
                  "name": "start",
                  "optional": true,
                  "type": {
                    "text": "number"
                  },
                  "description": "The 0-based index of the first character to replace. Defaults to the current `selectionStart` value (the start of the user's current selection)."
                },
                {
                  "name": "end",
                  "optional": true,
                  "type": {
                    "text": "number"
                  },
                  "description": "The 0-based index of the character after the last character to replace. Defaults to the current `selectionEnd` value (the end of the user's current selection)."
                },
                {
                  "name": "selectMode",
                  "default": "'preserve'",
                  "type": {
                    "text": "'select' | 'start' | 'end' | 'preserve'"
                  },
                  "description": "A string defining how the selection should be set after the text has been replaced."
                }
              ],
              "description": "Replaces a range of text with a new string.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setRangeText)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getNativeElement",
              "description": "Returns the native `<input>` or `<textarea>` element used under the hood.",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "events": [
            {
              "name": "select",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired when some text has been selected."
            },
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the input.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the input's value is changed via user interaction.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "type",
              "type": {
                "text": "| 'text'\n    | 'email'\n    | 'password'\n    | 'tel'\n    | 'url'\n    | 'search'\n    | 'number'\n    | 'unit'\n    | 'button'"
              },
              "default": "'text'",
              "description": "The type of the input.",
              "fieldName": "type"
            },
            {
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the input expands to fill the width of its container.",
              "fieldName": "expand"
            },
            {
              "name": "disallow-pattern",
              "type": {
                "text": "string | undefined"
              },
              "default": "undefined",
              "description": "Optionally disallow certain characters from being used inside the input, using a regex pattern.",
              "fieldName": "disallowPattern"
            },
            {
              "name": "inputmode",
              "type": {
                "text": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url' | undefined"
              },
              "default": "undefined",
              "description": "The inputmode attribute provides a hint to the browser about what type of keyboard to open on mobile devices.\nValid values: none, text, decimal, numeric, tel, search, email, url\nWhen not explicitly set, defaults based on input type:\n- type=\"number\" → inputmode=\"numeric\"\n- type=\"email\" → inputmode=\"email\"\n- type=\"tel\" → inputmode=\"tel\"\n- type=\"url\" → inputmode=\"url\"\n- type=\"search\" → inputmode=\"search\"\nCan be explicitly overridden for any type.",
              "fieldName": "inputmode"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "fieldName": "size",
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "fieldName": "label",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "fieldName": "hint",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-label",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "fieldName": "hideLabel",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "fieldName": "placeholder",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "fieldName": "error",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "fieldName": "required",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "fieldName": "hideRequired",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              },
              "default": "'off'",
              "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
              "fieldName": "autocomplete",
              "inheritedFrom": {
                "name": "AutocompleteMixin",
                "module": "src/common/mixins/AutocompleteMixin.ts"
              }
            },
            {
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
              "fieldName": "readonly",
              "inheritedFrom": {
                "name": "ReadonlyMixin",
                "module": "src/common/mixins/ReadonlyMixin.ts"
              }
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "SizeMixin",
              "module": "/src/common/mixins/SizeMixin.js"
            },
            {
              "name": "FormAssociatedMixin",
              "module": "/src/common/mixins/FormAssociatedMixin.js"
            },
            {
              "name": "AutocompleteMixin",
              "module": "/src/common/mixins/AutocompleteMixin.js"
            },
            {
              "name": "ReadonlyMixin",
              "module": "/src/common/mixins/ReadonlyMixin.js"
            },
            {
              "name": "TextSelectableMixin",
              "module": "/src/common/mixins/TextSelectableMixin.js"
            },
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "form",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide a text input where the expected input is short.\n- Use to only ask for information that’s really needed. Hide optional fields by default if possible or have them shown with a lower priority.\n- Use help text and placeholder to provide additional, non-critical instructions.\n- Validate input as soon as users have finished interacting with them (but not before).\n- Where necessary, label the input as “Optional” when you need to request input that’s not required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use when the expected text input is long. Use textarea component instead.\n- Don’t use the placeholder to provide information that’s required to use the input. Hint text should be used for this purpose instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nInput labels act as a title for the text field. Labels should typically be short and in noun form:\n\n<div class=\"n-usage n-usage-do\">Company name</div>\n<div class=\"n-usage n-usage-dont\">What is your company name?</div>\n\nWhen writing input labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Company name</div>\n<div class=\"n-usage n-usage-dont\">Company Name</div>\n\nWhen an input isn’t part of a form and is placed individually on a page, you could provide the input label as a call to action:\n\n<div class=\"n-usage n-usage-do\">Leave a comment</div>\n<div class=\"n-usage n-usage-dont\">Comment</div>\n\nDo not use colons in input label:\n\n<div class=\"n-usage n-usage-do\">First name</div>\n<div class=\"n-usage n-usage-dont\">First name:</div>\n\n---\n\n## Types\n\nThis section describes the different input types, their purpose, and when to use each type.\n\n| Name       | Purpose                                                                                                                                                      |\n| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `text`     | The default and most common variant. Displayed as a single-line text field. Line-breaks are automatically removed from the input value.                      |\n| `email`    | A field for editing an email address. Looks similar to a text input, but has validation parameters and relevant keyboard for devices with dynamic keyboards. |\n| `password` | A single-line text field where the value is obscured. This type will alert user if a site is not secure.                                                     |\n| `tel`      | A field for entering a telephone number. Displays a number keypad on mobile devices.                                                                         |\n| `url`      | A field variant that is used to let the user enter and edit an URL.                                                                                          |\n| `search`   | A single-line text field for entering search strings.                                                                                                        |\n| `number`   | Used to let the user enter a number.                                                                                                                         |\n\n---\n\n## Icon usage in input\n\nEach [input size](/components/input/?example=size) has a recommended icon size. The medium input uses the `s` icon size, the small input uses the `xs` icon size, and the large input uses the `m` icon size. The icon will adjust size automatically based on the button size, so you will get the correct behavior by default. However, this can be overridden by explicitly setting a size on the icon.\n\n---\n\n## Input mode\n\nThe `inputmode` attribute provides a hint to the browser about what type of keyboard to show on mobile devices. This is particularly useful for optimizing the mobile experience by opening the appropriate keyboard (numeric, email, URL, etc.) based on the expected input.\n\n- The `inputmode` attribute accepts the following values: `none`, `text`, `decimal`, `numeric`, `tel`, `search`, `email`, and `url`.\n- The component automatically defaults `inputmode` based on the input `type`:\n  - `type=\"number\"` → `inputmode=\"numeric\"`\n  - `type=\"email\"` → `inputmode=\"email\"`\n  - `type=\"tel\"` → `inputmode=\"tel\"`\n  - `type=\"url\"` → `inputmode=\"url\"`\n  - `type=\"search\"` → `inputmode=\"search\"`\n- You can override these defaults by explicitly setting a custom `inputmode` value, for example `inputmode=\"decimal\"` on a number type input, or `inputmode=\"numeric\"` on a text type input.\n\n---\n\n## Input masking\n\nWe recommend using [Maskito](https://maskito.dev/) for creating an [input mask](/components/input/?example=input+mask) which ensures that users type values according to a predefined format.\n",
          "examples": [],
          "dependencies": [
            "icon"
          ],
          "tagName": "nord-input",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Input",
            "module": "src/input/Input.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-input",
          "declaration": {
            "name": "Input",
            "module": "src/input/Input.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/input/_maskito-loader.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "applyTimeMask",
          "parameters": [
            {
              "name": "inputEl",
              "type": {
                "text": "HTMLElement"
              }
            }
          ],
          "description": "Helper to load Maskito from CDN and apply an input mask.\nExtracted to a separate file because Storybook's static indexer\ncannot parse dynamic import() expressions inside .stories.ts files."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "applyTimeMask",
          "declaration": {
            "name": "applyTimeMask",
            "module": "src/input/_maskito-loader.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/layout/Layout.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Layout', component: 'nord-layout', tags: ['autodocs'], argTypes: { navOpen: { control: 'boolean' }, persistNavState: { control: 'boolean' }, syncNavState: { control: 'boolean' }, padding: { control: 'select', options: ['m', 'none'], }, sticky: { control: 'boolean' }, stickyFooter: { control: 'boolean' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { navOpen: false, persistNavState: false, syncNavState: false, padding: 'm', sticky: false, stickyFooter: false, }, render: args => html` <nord-layout ?nav-open=${args.navOpen} ?persist-nav-state=${args.persistNavState} ?sync-nav-state=${args.syncNavState} padding=${args.padding} ?sticky=${args.sticky} ?sticky-footer=${args.stickyFooter}><nord-navigation slot=\"nav\">\\n <nord-nav-item>Item</nord-nav-item>\\n </nord-navigation>\\n <nord-header slot=\"header\"><h1 slot=\"title\">Title</h1></nord-header>\\n <main>Content</main></nord-layout> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" aria-hidden=\"true\" name=\"Laura Williams\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-stack> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] const navigation = container.querySelector('nord-navigation') // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "CustomSurfaceAndBackground",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout style=\"--n-layout-background-color: var(--n-color-nav-surface)\"> <nord-navigation style=\"--n-navigation-background-color: var(--n-color-background)\" slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" aria-hidden=\"true\" name=\"Laura Williams\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-stack> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] return container }, }"
        },
        {
          "kind": "variable",
          "name": "Drawer",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar aria-hidden=\"true\" name=\"Laura Williams\" slot=\"start\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-stack> <nord-drawer slot=\"drawer\"> <nord-header slot=\"header\"> <h2 class=\"n-typescale-l\">Drawer header</h2> <nord-button slot=\"end\" id=\"close\" variant=\"plain\" aria-describedby=\"close-sidebar\" size=\"s\" square> <nord-icon name=\"interface-close\" size=\"s\"></nord-icon> </nord-button> <nord-tooltip id=\"close-sidebar\">Close</nord-tooltip> </nord-header> <p class=\"n-typeset\"> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Recusandae itaque ad libero numquam ullam nisi quam porro, et quo accusantium! </p> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button>Cancel</nord-button> <nord-button variant=\"primary\">Done</nord-button> </nord-button-group> </nord-drawer> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const drawer = container.querySelector('nord-drawer') const commandMenu = container.querySelector('nord-command-menu') const closeButton = container.querySelector('#close') const hide = () => drawer.remove() closeButton.addEventListener('click', hide) commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] return container }, }"
        },
        {
          "kind": "variable",
          "name": "Footer",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<style>:root { /* CUSTOM ACCENT COLORS */ --n-color-accent: #401197; --n-color-accent-secondary: #310d77; } .n-help-icon { color: var(--n-color-text-weak); margin-inline-start: calc(var(--n-space-s) / 2); margin-inline-end: calc(var(--n-space-s) / 3); } .help-toggle:not(:focus-within) { --n-button-border-color: transparent; } .help-toggle:hover { --n-button-background-color: var(--n-color-nav-hover); --n-button-color: var(--n-color-text); } .help-toggle:hover nord-icon { color: var(--n-color-text); } @media (max-width: 768px) { nord-top-bar nord-input[type=\"search\"]:focus ~ nord-dropdown { display: none; } }</style> <nord-layout sticky-footer> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-info)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\" active>Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button class=\"help-toggle\" slot=\"toggle\" expand> <nord-icon slot=\"start\" class=\"n-help-icon\" size=\"m\" name=\"interface-help\"></nord-icon> Help & support </nord-button> <nord-dropdown-group> <nord-dropdown-item>Help center</nord-dropdown-item> <nord-dropdown-item>Contact us</nord-dropdown-item> <nord-dropdown-item>Support history</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Getting started</nord-dropdown-item> <nord-dropdown-item class=\"toggle-command-menu\"> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Tips & tricks</nord-dropdown-item> <nord-dropdown-item>Updates</nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </nord-navigation> <nord-top-bar slot=\"top-bar\"> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"notifications-tooltip\"> <nord-icon name=\"navigation-notifications\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">12</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\"> Notifications <span class=\"n-font-weight n-color-text-weaker\">(12)</span> </h2> <nord-button slot=\"header-end\" size=\"s\" autofocus>Mark all as read</nord-button> <nord-message unread highlight> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> New feature available! We’ve introduced a quick way to navigate between app views, actions, and more using a new command menu. <span slot=\"footer\">12 minutes ago</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Nick Williams arrived to clinic with Moog cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Eric Habich arrived to clinic with Zero cat. <span slot=\"footer\">4 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Elvin van Eede arrived to clinic with Amoeba cat. <span slot=\"footer\">12 hours ago at Nord Clinic</span> </nord-message> <nord-dropdown-item> See all notifications<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"notifications-tooltip\">12 unread notifications</nord-tooltip> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"tasks-tooltip\"> <nord-icon name=\"navigation-tasks\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">4</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\">My tasks <span class=\"n-font-weight n-color-text-weaker\">(4)</span></h2> <nord-button slot=\"header-end\" size=\"s\" autofocus> <nord-icon slot=\"start\" size=\"xxs\" name=\"interface-add-small\"></nord-icon> Create task </nord-button> <nord-message unread> Make sure to ask details from John regarding yesterday’s patient who arrived late. <span slot=\"footer\">Finish by Wednesday, March 8</span> </nord-message> <nord-message unread> Import new patients from Ocean Beach Clinic into the system. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call David and ask about his cat’s wellbeing. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call Anne and reschedule their visit. <span slot=\"footer\">Finish by Friday, March 10</span> </nord-message> <nord-dropdown-item> See all tasks<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"tasks-tooltip\">4 unfinished tasks</nord-tooltip> <nord-dropdown slot=\"end\"> <nord-button variant=\"plain\" slot=\"toggle\" aria-describedby=\"user-tooltip\"> <nord-avatar style=\"transform: translateY(-1px)\" name=\"Ariel Salminen\">AS</nord-avatar> </nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Ariel Salminen\">AS</nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Ariel Salminen</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"user-tooltip\">Ariel Salminen</nord-tooltip> </nord-top-bar> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-stack> <nord-footer slot=\"footer\"> <nord-button-group variant=\"spaced\"> <nord-button>Default</nord-button> <nord-button variant=\"primary\">Primary</nord-button> </nord-button-group> </nord-footer> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router const navigation = container.querySelector('nord-navigation') navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "FullHeightContent",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<style>:root { /* CUSTOM ACCENT COLORS */ --n-color-accent: #401197; --n-color-accent-secondary: #310d77; } .full-height { position: absolute; inset-block-start: calc(var(--n-size-top-bar) + var(--n-space-l)); inset-block-end: calc(var(--n-space-l)); /* if also footer is visible, use this instead of the above: */ /* inset-block-end: calc(var(--n-space-xxl) + var(--n-space-l)); */ inset-inline-start: var(--n-space-l); inset-inline-end: var(--n-space-l); min-block-size: 100px; inline-size: auto; } .scrollable { position: absolute; padding: var(--n-space-m); inset-block-start: 0; inset-block-end: 0; inset-inline-start: 0; inset-inline-end: 0; block-size: 100%; overflow: auto; } nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-m); } @media (max-width: 768px) { nord-top-bar nord-input[type=\"search\"]:focus ~ nord-dropdown { display: none; } }</style> <nord-layout> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-info)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\" active>Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> </nord-navigation> <nord-top-bar slot=\"top-bar\"> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"notifications-tooltip\"> <nord-icon name=\"navigation-notifications\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">12</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\"> Notifications <span class=\"n-font-weight n-color-text-weaker\">(12)</span> </h2> <nord-button slot=\"header-end\" size=\"s\" autofocus>Mark all as read</nord-button> <nord-message unread highlight> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> New feature available! We’ve introduced a quick way to navigate between app views, actions, and more using a new command menu. <span slot=\"footer\">12 minutes ago</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Nick Williams arrived to clinic with Moog cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Eric Habich arrived to clinic with Zero cat. <span slot=\"footer\">4 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Elvin van Eede arrived to clinic with Amoeba cat. <span slot=\"footer\">12 hours ago at Nord Clinic</span> </nord-message> <nord-dropdown-item> See all notifications<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"notifications-tooltip\">12 unread notifications</nord-tooltip> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"tasks-tooltip\"> <nord-icon name=\"navigation-tasks\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">4</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\">My tasks <span class=\"n-font-weight n-color-text-weaker\">(4)</span></h2> <nord-button slot=\"header-end\" size=\"s\" autofocus> <nord-icon slot=\"start\" size=\"xxs\" name=\"interface-add-small\"></nord-icon> Create task </nord-button> <nord-message unread> Make sure to ask details from John regarding yesterday’s patient who arrived late. <span slot=\"footer\">Finish by Wednesday, March 8</span> </nord-message> <nord-message unread> Import new patients from Ocean Beach Clinic into the system. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call David and ask about his cat’s wellbeing. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call Anne and reschedule their visit. <span slot=\"footer\">Finish by Friday, March 10</span> </nord-message> <nord-dropdown-item> See all tasks<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"tasks-tooltip\">4 unfinished tasks</nord-tooltip> <nord-dropdown slot=\"end\"> <nord-button variant=\"plain\" slot=\"toggle\" aria-describedby=\"user-tooltip\"> <nord-avatar style=\"transform: translateY(-1px)\" name=\"Ariel Salminen\">AS</nord-avatar> </nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Ariel Salminen\">AS</nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Ariel Salminen</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"user-tooltip\">Ariel Salminen</nord-tooltip> </nord-top-bar> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\" size=\"s\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-card class=\"full-height\"> <div class=\"scrollable\"> <nord-stack> <nord-banner variant=\"info\"> This card component should fill the available height of the content area and have internal scrolling where necessary. </nord-banner> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> </div> </nord-card> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router const navigation = container.querySelector('nord-navigation') navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "FullHeightTable",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<style>:root { /* CUSTOM ACCENT COLORS */ --n-color-accent: #401197; --n-color-accent-secondary: #310d77; } .full-height { position: absolute; inset-block-start: calc(var(--n-size-top-bar) + var(--n-space-l)); inset-block-end: calc(var(--n-space-l)); /* if also footer is visible, use this instead of the above: */ /* inset-block-end: calc(var(--n-space-xxl) + var(--n-space-l)); */ inset-inline-start: var(--n-space-l); inset-inline-end: var(--n-space-l); min-block-size: 100px; inline-size: auto; } nord-table.scrollable { position: absolute; inset-block-start: 0; inset-block-end: 0; inset-inline-start: 0; inset-inline-end: 0; block-size: 100%; } nord-table.scrollable th { position: sticky; inset-block-start: 0; z-index: var(--n-index-sticky); } @media (max-width: 768px) { nord-top-bar nord-input[type=\"search\"]:focus ~ nord-dropdown { display: none; } }</style> <nord-layout> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-info)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\" active>Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> </nord-navigation> <nord-top-bar slot=\"top-bar\"> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"notifications-tooltip\"> <nord-icon name=\"navigation-notifications\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">12</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\"> Notifications <span class=\"n-font-weight n-color-text-weaker\">(12)</span> </h2> <nord-button slot=\"header-end\" size=\"s\" autofocus>Mark all as read</nord-button> <nord-message unread highlight> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> New feature available! We’ve introduced a quick way to navigate between app views, actions, and more using a new command menu. <span slot=\"footer\">12 minutes ago</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Nick Williams arrived to clinic with Moog cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Eric Habich arrived to clinic with Zero cat. <span slot=\"footer\">4 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Elvin van Eede arrived to clinic with Amoeba cat. <span slot=\"footer\">12 hours ago at Nord Clinic</span> </nord-message> <nord-dropdown-item> See all notifications<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"notifications-tooltip\">12 unread notifications</nord-tooltip> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"tasks-tooltip\"> <nord-icon name=\"navigation-tasks\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">4</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\">My tasks <span class=\"n-font-weight n-color-text-weaker\">(4)</span></h2> <nord-button slot=\"header-end\" size=\"s\" autofocus> <nord-icon slot=\"start\" size=\"xxs\" name=\"interface-add-small\"></nord-icon> Create task </nord-button> <nord-message unread> Make sure to ask details from John regarding yesterday’s patient who arrived late. <span slot=\"footer\">Finish by Wednesday, March 8</span> </nord-message> <nord-message unread> Import new patients from Ocean Beach Clinic into the system. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call David and ask about his cat’s wellbeing. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call Anne and reschedule their visit. <span slot=\"footer\">Finish by Friday, March 10</span> </nord-message> <nord-dropdown-item> See all tasks<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"tasks-tooltip\">4 unfinished tasks</nord-tooltip> <nord-dropdown slot=\"end\"> <nord-button variant=\"plain\" slot=\"toggle\" aria-describedby=\"user-tooltip\"> <nord-avatar style=\"transform: translateY(-1px)\" name=\"Ariel Salminen\">AS</nord-avatar> </nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Ariel Salminen\">AS</nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Ariel Salminen</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"user-tooltip\">Ariel Salminen</nord-tooltip> </nord-top-bar> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\" size=\"s\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-card padding=\"none\" class=\"full-height\"> <nord-table class=\"scrollable\"> <table> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Status</th> <th>Description</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> <th class=\"n-table-align-right\">Actions</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">19.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">17.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">12.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">10.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">9.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">3.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">1.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">30.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">26.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td><nord-badge variant=\"danger\">Alert</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">24.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">23.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">22.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">21.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">18.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> </tbody> </table> </nord-table> </nord-card> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router const navigation = container.querySelector('nord-navigation') navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "KitchenSink",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<style>.themed { --n-color-accent: #793aaf; --n-color-accent-secondary: #3b0075; }</style> <nord-layout padding=\"none\"> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\" active>Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button class=\"help-toggle\" slot=\"toggle\" expand> <nord-icon slot=\"start\" class=\"n-help-icon\" size=\"m\" name=\"interface-help\"></nord-icon> Help & support </nord-button> <nord-dropdown-group> <nord-dropdown-item onclick=\"refresh()\">Help center</nord-dropdown-item> <nord-dropdown-item onclick=\"refresh()\">Contact us</nord-dropdown-item> <nord-dropdown-item onclick=\"refresh()\">Support history</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item onclick=\"refresh()\">Getting started</nord-dropdown-item> <nord-dropdown-item class=\"toggle-command-menu\"> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item onclick=\"refresh()\">Tips & tricks</nord-dropdown-item> <nord-dropdown-item onclick=\"refresh()\">Updates</nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </nord-navigation> <nord-top-bar slot=\"top-bar\"> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"notifications-tooltip\"> <nord-icon name=\"navigation-notifications\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">12</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\"> Notifications <span class=\"n-font-weight n-color-text-weaker\">(12)</span> </h2> <nord-button slot=\"header-end\" size=\"s\" autofocus>Mark all as read</nord-button> <nord-message unread highlight> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> New feature available! We’ve introduced a quick way to navigate between app views, actions, and more using a new command menu. <span slot=\"footer\">12 minutes ago</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Nick Williams arrived to clinic with Moog cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Eric Habich arrived to clinic with Zero cat. <span slot=\"footer\">4 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Elvin van Eede arrived to clinic with Amoeba cat. <span slot=\"footer\">12 hours ago at Nord Clinic</span> </nord-message> <nord-dropdown-item> See all notifications<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"notifications-tooltip\">12 unread notifications</nord-tooltip> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"tasks-tooltip\"> <nord-icon name=\"navigation-tasks\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">4</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\">My tasks <span class=\"n-font-weight n-color-text-weaker\">(4)</span></h2> <nord-button slot=\"header-end\" size=\"s\" autofocus> <nord-icon slot=\"start\" size=\"xxs\" name=\"interface-add-small\"></nord-icon> Create task </nord-button> <nord-message unread> Make sure to ask details from John regarding yesterday’s patient who arrived late. <span slot=\"footer\">Finish by Wednesday, March 8</span> </nord-message> <nord-message unread> Import new patients from Ocean Beach Clinic into the system. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call David and ask about his cat’s wellbeing. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call Anne and reschedule their visit. <span slot=\"footer\">Finish by Friday, March 10</span> </nord-message> <nord-dropdown-item> See all tasks<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"tasks-tooltip\">4 unfinished tasks</nord-tooltip> <nord-dropdown slot=\"end\"> <nord-button variant=\"plain\" slot=\"toggle\" aria-describedby=\"user-tooltip\"> <nord-avatar style=\"transform: translateY(-1px)\" name=\"Ariel Salminen\">AS</nord-avatar> </nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Ariel Salminen\">AS</nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Ariel Salminen</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"user-tooltip\">Ariel Salminen</nord-tooltip> </nord-top-bar> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> </nord-header> <nord-notification-group> </nord-notification-group> <nord-tab-group sticky> <nord-tab slot=\"tab\">Test tab</nord-tab> <nord-tab-panel> <nord-visually-hidden id=\"button-group-header\">Feature toggles</nord-visually-hidden> <nord-button-group style=\"--n-button-group-box-shadow: none\" class=\"n-margin-be-m\" aria-labelledby=\"button-group-header\" > <nord-button id=\"btn-toggle-top-bar\" aria-pressed=\"true\">Top bar</nord-button> <nord-button id=\"btn-toggle-header\" aria-pressed=\"true\">Header</nord-button> <nord-button id=\"btn-toggle-footer\" aria-pressed=\"true\">Footer</nord-button> <nord-button id=\"btn-toggle-sticky\">Sticky header</nord-button> <nord-button id=\"btn-toggle-sticky-footer\">Sticky footer</nord-button> <nord-button id=\"btn-toggle-sticky-nav-footer\">Sticky nav footer</nord-button> <nord-button id=\"btn-toggle-navigation\" aria-pressed=\"true\">Navigation</nord-button> <nord-button id=\"btn-toggle-drawer\" aria-pressed=\"true\">Drawer</nord-button> <nord-button id=\"btn-toggle-accent-colors\">Theme</nord-button> <nord-button id=\"btn-show-notification\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Add notification </nord-button> </nord-button-group> <nord-card padding=\"none\"> <h2 slot=\"header\">Payouts</h2> <nord-table sticky> <table> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Status</th> <th>Description</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> <th class=\"n-table-align-right\">Actions</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">19.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">17.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">12.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">10.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">9.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">3.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">1.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">30.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"danger\">Danger</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"danger\">Danger</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">26.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"danger\">Danger</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">24.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">23.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">22.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">21.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">18.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\" size=\"s\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> </tbody> </table> </nord-table> <nord-tooltip id=\"edit\" position=\"block-end\">Edit this row</nord-tooltip> </nord-card> </nord-tab-panel> <nord-tab slot=\"tab\">Another tab</nord-tab> <nord-tab-panel> <p>This tab is intentionally left blank</p> </nord-tab-panel> </nord-tab-group> <nord-drawer slot=\"drawer\"> <nord-header slot=\"header\"> <h2 class=\"n-typescale-l\">Drawer header</h2> <nord-button slot=\"end\" id=\"close\" variant=\"plain\" aria-describedby=\"close-sidebar\" size=\"s\" square> <nord-icon name=\"interface-close\" size=\"s\"></nord-icon> </nord-button> <nord-tooltip id=\"close-sidebar\" position=\"block-end\">Close</nord-tooltip> </nord-header> <p> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Recusandae itaque ad libero numquam ullam nisi quam porro, et quo accusantium! </p> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button>Cancel</nord-button> <nord-button variant=\"primary\">Done</nord-button> </nord-button-group> </nord-drawer> <nord-footer slot=\"footer\"> <nord-button-group variant=\"spaced\"> <nord-button>Default</nord-button> <nord-button variant=\"primary\">Primary</nord-button> </nord-button-group> </nord-footer> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const navigation = container.querySelector('nord-navigation') const topBar = container.querySelector('nord-top-bar') const header = container.querySelector('nord-header[slot=\\'header\\']') const footer = container.querySelector('nord-footer[slot=\\'footer\\']') const drawer = container.querySelector('nord-drawer') const notifications = container.querySelector('nord-notification-group') const commandMenu = container.querySelector('nord-command-menu') const buttonGroup = container.querySelector('nord-button-group') // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true } }) // TOGGLE DRAWER const toggleDrawer = () => { if (drawer.isConnected) { drawer.remove() toggleDrawerButton.setAttribute('aria-pressed', 'false') } else { layout.appendChild(drawer) toggleDrawerButton.setAttribute('aria-pressed', 'true') } } const closeDrawerButton = container.querySelector('#close') closeDrawerButton.addEventListener('click', toggleDrawer) const toggleDrawerButton = container.querySelector('#btn-toggle-drawer') toggleDrawerButton.addEventListener('click', toggleDrawer) // TOGGLE TOP BAR const toggleTopBarButton = container.querySelector('#btn-toggle-top-bar') toggleTopBarButton.addEventListener('click', () => { if (topBar.isConnected) { topBar.remove() toggleTopBarButton.setAttribute('aria-pressed', 'false') } else { layout.appendChild(topBar) toggleTopBarButton.setAttribute('aria-pressed', 'true') } }) // TOGGLE HEADER const toggleHeaderButton = container.querySelector('#btn-toggle-header') toggleHeaderButton.addEventListener('click', () => { if (header.isConnected) { header.remove() toggleHeaderButton.setAttribute('aria-pressed', 'false') } else { layout.appendChild(header) toggleHeaderButton.setAttribute('aria-pressed', 'true') } }) // TOGGLE FOOTER const toggleFooterButton = container.querySelector('#btn-toggle-footer') toggleFooterButton.addEventListener('click', () => { if (footer.isConnected) { footer.remove() toggleFooterButton.setAttribute('aria-pressed', 'false') } else { layout.appendChild(footer) toggleFooterButton.setAttribute('aria-pressed', 'true') } }) // TOGGLE STICKY HEADER const toggleStickyButton = container.querySelector('#btn-toggle-sticky') toggleStickyButton.addEventListener('click', () => { layout.sticky = !layout.sticky toggleStickyButton.setAttribute('aria-pressed', layout.sticky) }) // TOGGLE STICKY FOOTER const toggleStickyFooterButton = container.querySelector('#btn-toggle-sticky-footer') toggleStickyFooterButton.addEventListener('click', () => { layout.stickyFooter = !layout.stickyFooter toggleStickyFooterButton.setAttribute('aria-pressed', layout.stickyFooter) }) // TOGGLE STICKY NAV FOOTER const toggleStickyNavFooterButton = container.querySelector('#btn-toggle-sticky-nav-footer') toggleStickyNavFooterButton.addEventListener('click', () => { navigation.stickyFooter = !navigation.stickyFooter toggleStickyNavFooterButton.setAttribute('aria-pressed', navigation.stickyFooter) }) // SHOW NOTIFICATION const showNotificationButton = container.querySelector('#btn-show-notification') showNotificationButton.addEventListener('click', () => { const notification = document.createElement('nord-notification') notification.innerHTML = ` <h2>Patient arrived</h2> <p>Ariel Salminen arrived to clinic with Pixie cat.</p> <a href=\"#\">Start consultation</a> ` notifications.appendChild(notification) }) // DISMISS NOTIFICATION notifications.addEventListener('dismiss', e => e.target.remove()) // TOGGLE NAVIGATION const toggleNavigation = () => { layout.navOpen = !layout.navOpen toggleNavigationButton.setAttribute('aria-pressed', layout.navOpen) } const toggleNavigationButton = container.querySelector('#btn-toggle-navigation') toggleNavigationButton.addEventListener('click', toggleNavigation) commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler: toggleNavigation, }, ] // TOGGLE TOP BAR COLOR const toggleAccentColorButton = container.querySelector('#btn-toggle-accent-colors') toggleAccentColorButton.addEventListener('click', () => { document.body.classList.toggle('themed') toggleAccentColorButton.setAttribute('aria-pressed', document.body.classList.contains('themed')) }) // BUTTON GROUP DIRECTION const buttonGroupDirection = () => { if (window.matchMedia('(max-width: 1200px)').matches) { buttonGroup.direction = 'vertical' } else { buttonGroup.direction = 'horizontal' } } buttonGroupDirection() window.addEventListener('resize', buttonGroupDirection) return container }, }"
        },
        {
          "kind": "variable",
          "name": "NoPadding",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout padding=\"none\"> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar aria-hidden=\"true\" name=\"Laura Williams\" slot=\"start\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-tab-group label=\"Title\" sticky padding=\"l\"> <nord-tab slot=\"tab\">Overview</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-tab-panel> <nord-tab slot=\"tab\">Terminals</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card heading 2</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 28th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-tab-panel> <nord-tab slot=\"tab\">Stores</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card heading 3</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 29th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-tab-panel> <nord-tab slot=\"tab\">Account holders</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card heading 4</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 30th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-tab-panel> </nord-tab-group> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] return container }, }"
        },
        {
          "kind": "variable",
          "name": "PersistNavState",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout persist-nav-state> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" aria-hidden=\"true\" name=\"Laura Williams\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-stack> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] const navigation = container.querySelector('nord-navigation') // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "PreventingNavCloseOnMobile",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item class=\"prevent-close\" href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar aria-hidden=\"true\" name=\"Laura Williams\" slot=\"start\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-stack> </nord-layout>` container.querySelector('.prevent-close').addEventListener('click', (e) => { // calling preventDefault() on a nav-item's click event // will prevent the nav automatically closing on mobile e.preventDefault() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "ProgrammaticallyCloseNav",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button class=\"account-button\" slot=\"toggle\" expand variant=\"plain\"> <nord-avatar aria-hidden=\"true\" name=\"Laura Williams\" slot=\"start\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-stack> </nord-layout>` const layout = container.querySelector('nord-layout') const dropdown = container.querySelector(`nord-dropdown[slot=\"footer\"]`) dropdown.addEventListener('click', async (e) => { if (!e.target.matches('nord-dropdown-item')) { return } await dropdown.hide(!layout.isNarrow) // we only want to close the nav at narrow widths if (layout.isNarrow) { // awaiting hide() allows us to wait until the dropdown has animating await dropdown.hide(false) // then close the nav layout.navOpen = false } else { dropdown.hide() } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "StickyHeader",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-layout sticky padding=\"none\"> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar aria-hidden=\"true\" name=\"Laura Williams\" slot=\"start\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> </nord-header> <nord-tab-group label=\"Title\" sticky padding=\"l\"> <nord-tab slot=\"tab\">Overview</nord-tab> <nord-tab-panel> <nord-card padding=\"none\"> <h2 slot=\"header\">Payouts</h2> <nord-table> <table> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Status</th> <th>Description</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> <th class=\"n-table-align-right\">Actions</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">19.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">17.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">12.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">10.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">9.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">3.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">1.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">30.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"danger\">Danger</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"danger\">Danger</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">26.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td class=\"current-status\"><nord-badge variant=\"danger\">Danger</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">24.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">23.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">22.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">21.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td class=\"current-status\"><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor massa sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">18.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-dropdown position=\"block-end\" align=\"end\" size=\"s\"> <nord-button slot=\"toggle\" aria-describedby=\"edit\" size=\"s\" square> <nord-icon name=\"interface-menu-small\" label=\"Open menu\"></nord-icon> </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View payment details</nord-dropdown-item> <nord-dropdown-item>Open in new tab</nord-dropdown-item> <nord-dropdown-item>Copy link</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item data-action=\"refund\">Refund payment</nord-dropdown-item> <nord-dropdown-item data-action=\"delete\"> <span>Delete</span> <nord-icon slot=\"end\" name=\"interface-delete\"></nord-icon> </nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </div> </td> </tr> </tbody> </table> </nord-table> <nord-tooltip id=\"edit\" position=\"block-end\">Edit this row</nord-tooltip> </nord-card> </nord-tab-panel> <nord-tab slot=\"tab\">Terminals</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card header 2</h2> Card content </nord-card> </nord-tab-panel> <nord-tab slot=\"tab\">Stores</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card header 3</h2> Card content </nord-card> </nord-tab-panel> <nord-tab slot=\"tab\">Account holders</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card header 4</h2> Card content </nord-card> </nord-tab-panel> </nord-tab-group> </nord-layout> `, }"
        },
        {
          "kind": "variable",
          "name": "SupplyOwnNavToggle",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar variant=\"square\" slot=\"start\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar variant=\"square\" slot=\"start\" size=\"s\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\" size=\"s\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar variant=\"square\" slot=\"start\" size=\"s\" style=\"--n-avatar-color: var(--n-color-status-success)\"> O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar variant=\"square\" slot=\"start\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" size=\"s\"> P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar variant=\"square\" slot=\"start\" style=\"--n-avatar-color: var(--n-color-status-danger)\" size=\"s\"> B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar aria-hidden=\"true\" name=\"Laura Williams\" slot=\"start\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\" size=\"s\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation> <nord-nav-toggle slot=\"nav-toggle\" aria-describedby=\"toggle-tooltip\"></nord-nav-toggle> <nord-tooltip id=\"toggle-tooltip\" position=\"inline-end\"> Toggle navigation <div slot=\"shortcut\"> <nord-icon name=\"keyboard-option\" size=\"s\" label=\"Alt/Option key\"></nord-icon> </div> <span slot=\"shortcut\">L</span> </nord-tooltip> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\"> <nord-icon slot=\"start\" size=\"s\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-stack> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] return container }, }"
        },
        {
          "kind": "variable",
          "name": "SyncNavState",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-layout sync-nav-state> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" aria-hidden=\"true\" name=\"Laura Williams\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Syncing nav state</h2> <nord-banner variant=\"info\"> Open this example in multiple windows/tabs to see nav state get synced between them. </nord-banner> </nord-card> </nord-stack> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] const navigation = container.querySelector('nord-navigation') // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Theming",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<style>:root { /* CUSTOM ACCENT COLORS */ --n-color-accent: #401197; --n-color-accent-secondary: #310d77; } .n-help-icon { color: var(--n-color-text-weak); margin-inline-start: calc(var(--n-space-s) / 2); margin-inline-end: calc(var(--n-space-s) / 3); } .help-toggle:not(:focus-within) { --n-button-border-color: transparent; } .help-toggle:hover { --n-button-background-color: var(--n-color-nav-hover); --n-button-color: var(--n-color-text); } .help-toggle:hover nord-icon { color: var(--n-color-text); } @media (max-width: 768px) { nord-top-bar nord-input[type=\"search\"]:focus ~ nord-dropdown { display: none; } }</style> <nord-layout> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-info)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\" active>Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button class=\"help-toggle\" slot=\"toggle\" expand> <nord-icon slot=\"start\" class=\"n-help-icon\" size=\"m\" name=\"interface-help\"></nord-icon> Help & support </nord-button> <nord-dropdown-group> <nord-dropdown-item>Help center</nord-dropdown-item> <nord-dropdown-item>Contact us</nord-dropdown-item> <nord-dropdown-item>Support history</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Getting started</nord-dropdown-item> <nord-dropdown-item class=\"toggle-command-menu\"> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Tips & tricks</nord-dropdown-item> <nord-dropdown-item>Updates</nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </nord-navigation> <nord-top-bar slot=\"top-bar\"> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"notifications-tooltip\"> <nord-icon name=\"navigation-notifications\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">12</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\"> Notifications <span class=\"n-font-weight n-color-text-weaker\">(12)</span> </h2> <nord-button slot=\"header-end\" size=\"s\" autofocus>Mark all as read</nord-button> <nord-message unread highlight> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> New feature available! We’ve introduced a quick way to navigate between app views, actions, and more using a new command menu. <span slot=\"footer\">12 minutes ago</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Nick Williams arrived to clinic with Moog cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Eric Habich arrived to clinic with Zero cat. <span slot=\"footer\">4 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Elvin van Eede arrived to clinic with Amoeba cat. <span slot=\"footer\">12 hours ago at Nord Clinic</span> </nord-message> <nord-dropdown-item> See all notifications<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"notifications-tooltip\">12 unread notifications</nord-tooltip> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"tasks-tooltip\"> <nord-icon name=\"navigation-tasks\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">4</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\">My tasks <span class=\"n-font-weight n-color-text-weaker\">(4)</span></h2> <nord-button slot=\"header-end\" size=\"s\" autofocus> <nord-icon slot=\"start\" size=\"xxs\" name=\"interface-add-small\"></nord-icon> Create task </nord-button> <nord-message unread> Make sure to ask details from John regarding yesterday’s patient who arrived late. <span slot=\"footer\">Finish by Wednesday, March 8</span> </nord-message> <nord-message unread> Import new patients from Ocean Beach Clinic into the system. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call David and ask about his cat’s wellbeing. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call Anne and reschedule their visit. <span slot=\"footer\">Finish by Friday, March 10</span> </nord-message> <nord-dropdown-item> See all tasks<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"tasks-tooltip\">4 unfinished tasks</nord-tooltip> <nord-dropdown slot=\"end\"> <nord-button variant=\"plain\" slot=\"toggle\" aria-describedby=\"user-tooltip\"> <nord-avatar style=\"transform: translateY(-1px)\" name=\"Ariel Salminen\">AS</nord-avatar> </nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Ariel Salminen\">AS</nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Ariel Salminen</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"user-tooltip\">Ariel Salminen</nord-tooltip> </nord-top-bar> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\" size=\"s\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-stack> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router const navigation = container.querySelector('nord-navigation') navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "TopBar",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<style>.n-help-icon { color: var(--n-color-text-weak); margin-inline-start: calc(var(--n-space-s) / 2); margin-inline-end: calc(var(--n-space-s) / 3); } .help-toggle:not(:focus-within) { --n-button-border-color: transparent; } .help-toggle:hover { --n-button-background-color: var(--n-color-nav-hover); --n-button-color: var(--n-color-text); } .help-toggle:hover nord-icon { color: var(--n-color-text); } @media (max-width: 768px) { nord-top-bar nord-input[type=\"search\"]:focus ~ nord-dropdown { display: none; } }</style> <nord-layout> <nord-navigation slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\" active>Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button class=\"help-toggle\" slot=\"toggle\" expand> <nord-icon slot=\"start\" class=\"n-help-icon\" size=\"m\" name=\"interface-help\"></nord-icon> Help & support </nord-button> <nord-dropdown-group> <nord-dropdown-item onclick=\"refresh()\">Help center</nord-dropdown-item> <nord-dropdown-item onclick=\"refresh()\">Contact us</nord-dropdown-item> <nord-dropdown-item onclick=\"refresh()\">Support history</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item onclick=\"refresh()\">Getting started</nord-dropdown-item> <nord-dropdown-item class=\"toggle-command-menu\"> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item onclick=\"refresh()\">Tips & tricks</nord-dropdown-item> <nord-dropdown-item onclick=\"refresh()\">Updates</nord-dropdown-item> </nord-dropdown-group> </nord-dropdown> </nord-navigation> <nord-top-bar slot=\"top-bar\"> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"notifications-tooltip\"> <nord-icon name=\"navigation-notifications\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">12</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\"> Notifications <span class=\"n-font-weight n-color-text-weaker\">(12)</span> </h2> <nord-button slot=\"header-end\" size=\"s\" autofocus>Mark all as read</nord-button> <nord-message unread highlight> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> New feature available! We’ve introduced a quick way to navigate between app views, actions, and more using a new command menu. <span slot=\"footer\">12 minutes ago</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Nick Williams arrived to clinic with Moog cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Eric Habich arrived to clinic with Zero cat. <span slot=\"footer\">4 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Elvin van Eede arrived to clinic with Amoeba cat. <span slot=\"footer\">12 hours ago at Nord Clinic</span> </nord-message> <nord-dropdown-item> See all notifications<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"notifications-tooltip\">12 unread notifications</nord-tooltip> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"tasks-tooltip\"> <nord-icon name=\"navigation-tasks\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">4</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\">My tasks <span class=\"n-font-weight n-color-text-weaker\">(4)</span></h2> <nord-button slot=\"header-end\" size=\"s\" autofocus> <nord-icon slot=\"start\" size=\"xxs\" name=\"interface-add-small\"></nord-icon> Create task </nord-button> <nord-message unread> Make sure to ask details from John regarding yesterday’s patient who arrived late. <span slot=\"footer\">Finish by Wednesday, March 8</span> </nord-message> <nord-message unread> Import new patients from Ocean Beach Clinic into the system. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call David and ask about his cat’s wellbeing. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call Anne and reschedule their visit. <span slot=\"footer\">Finish by Friday, March 10</span> </nord-message> <nord-dropdown-item> See all tasks<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"tasks-tooltip\">4 unfinished tasks</nord-tooltip> <nord-dropdown slot=\"end\"> <nord-button variant=\"plain\" slot=\"toggle\" aria-describedby=\"user-tooltip\"> <nord-avatar style=\"transform: translateY(-1px)\" name=\"Ariel Salminen\">AS</nord-avatar> </nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Ariel Salminen\">AS</nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Ariel Salminen</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"user-tooltip\">Ariel Salminen</nord-tooltip> </nord-top-bar> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\" size=\"s\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\"> Export data as Spreadsheet </nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Card heading</h2> <nord-banner variant=\"success\"> Your order has been shipped and will arrive on May 27th. <a href=\"#\">Track order</a>. </nord-banner> </nord-card> </nord-stack> </nord-layout> <nord-command-menu></nord-command-menu>` const layout = container.querySelector('nord-layout') const commandMenu = container.querySelector('nord-command-menu') commandMenu.commands = [ { id: 'toggle-nav', title: 'Toggle navigation', icon: 'navigation-toggle', shortcut: 'Alt+KeyL', handler() { layout.navOpen = !layout.navOpen }, }, ] // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router const navigation = container.querySelector('nord-navigation') navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true } }) return container }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomSurfaceAndBackground",
          "declaration": {
            "name": "CustomSurfaceAndBackground",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Drawer",
          "declaration": {
            "name": "Drawer",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Footer",
          "declaration": {
            "name": "Footer",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "FullHeightContent",
          "declaration": {
            "name": "FullHeightContent",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "FullHeightTable",
          "declaration": {
            "name": "FullHeightTable",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "KitchenSink",
          "declaration": {
            "name": "KitchenSink",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "NoPadding",
          "declaration": {
            "name": "NoPadding",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PersistNavState",
          "declaration": {
            "name": "PersistNavState",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PreventingNavCloseOnMobile",
          "declaration": {
            "name": "PreventingNavCloseOnMobile",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ProgrammaticallyCloseNav",
          "declaration": {
            "name": "ProgrammaticallyCloseNav",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "StickyHeader",
          "declaration": {
            "name": "StickyHeader",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "SupplyOwnNavToggle",
          "declaration": {
            "name": "SupplyOwnNavToggle",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "SyncNavState",
          "declaration": {
            "name": "SyncNavState",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Theming",
          "declaration": {
            "name": "Theming",
            "module": "src/layout/Layout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TopBar",
          "declaration": {
            "name": "TopBar",
            "module": "src/layout/Layout.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/layout/Layout.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Layout component is used to create the main layout of an app. Layout\ncurrently comes with one main configuration: two-column.",
          "name": "Layout",
          "cssProperties": [
            {
              "description": "Controls the padding around the main layout area (the main slot), using our [spacing tokens](/tokens/#space).",
              "name": "--n-layout-padding",
              "default": "var(--n-space-l)"
            },
            {
              "description": "Controls the width of the drawer area, when used.",
              "name": "--n-layout-drawer-inline-size",
              "default": "320px"
            },
            {
              "description": "Controls the background color of the layout, using [color tokens](/tokens/#color).",
              "name": "--n-layout-background-color",
              "default": "var(--n-color-background)"
            }
          ],
          "slots": [
            {
              "description": "The default main section content.",
              "name": ""
            },
            {
              "description": "Used to place content inside the navigation sidebar.",
              "name": "nav"
            },
            {
              "description": "Used to place the [Top Bar](../top-bar/) component.",
              "name": "top-bar"
            },
            {
              "description": "Used to place content inside the header section. This slot can be made sticky by utilizing the `sticky` property on the layout component.",
              "name": "header"
            },
            {
              "description": "Used to place content inside the footer section. This slot can be made sticky by utilizing the `stickyFooter` property on the layout component.",
              "name": "footer"
            },
            {
              "description": "Used to place additional content/details relating to a selected item.",
              "name": "drawer"
            },
            {
              "description": "Used to place a own nav-toggle component, for cases where you might need to add a tooltip.",
              "name": "nav-toggle"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "peekTimeoutId",
              "type": {
                "text": "ReturnType<typeof setTimeout> | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "navSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'nav')"
            },
            {
              "kind": "field",
              "name": "drawerSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'drawer')"
            },
            {
              "kind": "field",
              "name": "topBarSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'top-bar')"
            },
            {
              "kind": "field",
              "name": "headerSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'header')"
            },
            {
              "kind": "field",
              "name": "footerSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'footer')"
            },
            {
              "kind": "field",
              "name": "direction",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "events",
              "privacy": "private",
              "default": "new EventController(this)"
            },
            {
              "kind": "field",
              "name": "lightDismiss",
              "privacy": "private",
              "default": "new LightDismissController(this, { isOpen: () => this.navState === 'opened' && !this.wideScreen, onDismiss: () => this.navTransition('close'), isDismissible: node => node !== this.navEl, })"
            },
            {
              "kind": "field",
              "name": "broadcast",
              "privacy": "private",
              "default": "new BroadcastChannelController<{ navOpen: boolean } | { navWidth: number }>(this, { channelName: 'nord-layout-nav-state', enabled: () => this.syncNavState && this.wideScreen, onMessage: (data) => { if ('navOpen' in data) { this.navOpen = data.navOpen } if ('navWidth' in data) { this.navWidth = data.navWidth } }, })"
            },
            {
              "kind": "field",
              "name": "navEl",
              "type": {
                "text": "HTMLDivElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "navWidth",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "isDragging",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "navState",
              "type": {
                "text": "NavState"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "wideScreen",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "navOpen",
              "type": {
                "text": "boolean"
              },
              "description": "Controls whether the navigation is hidden off-screen or not.\nDefaults to `true` for wide viewports, and `false` otherwise.",
              "attribute": "nav-open",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "persistNavState",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the navigation's open/closed state is persisted across page loads.\nThis is useful for multi-page apps, where clicks on links trigger a full page load.",
              "attribute": "persist-nav-state",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "syncNavState",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the navigation's open/closed state and width is synced across tabs/windows on the same origin.\nThis is useful for long-lived app sessions where you may have multiple tabs/windows open at once.",
              "attribute": "sync-nav-state",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "padding",
              "type": {
                "text": "'m' | 'none'"
              },
              "default": "'m'",
              "description": "Controls the padding of the default main section slot. When set to “none”,\nthe nav and header slots will still have padding.",
              "attribute": "padding",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "sticky",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the layout's header has sticky positioning.",
              "attribute": "sticky",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "stickyFooter",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the layout's footer has sticky positioning.",
              "attribute": "sticky-footer",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "isNarrow",
              "type": {
                "text": "boolean"
              },
              "description": "A getter whose values reflects whether the layout component considers the viewport to be narrow or not.\nA narrow viewport is considered to be less than 768px wide.",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "renderNavToggle",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderNavCollapse",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleNavWidthChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleNavStateChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "prev",
                  "type": {
                    "text": "NavState"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleOpenChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "prev",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "navTransition",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "NavEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleNavClick",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleMainClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleDropdownOpen",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleDropdownClose",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleMediaQueryChange",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleToggleClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleNavFocus",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleMainFocus",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleMouseEnter",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleMouseLeave",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleTransitionEnd",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleKeyboardResize",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setNavWidth",
              "privacy": "private",
              "parameters": [
                {
                  "name": "width",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "startDragging",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "PointerEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "stopDragging",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleDrag",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "PointerEvent"
                  }
                }
              ]
            }
          ],
          "attributes": [
            {
              "name": "nav-open",
              "type": {
                "text": "boolean"
              },
              "description": "Controls whether the navigation is hidden off-screen or not.\nDefaults to `true` for wide viewports, and `false` otherwise.",
              "fieldName": "navOpen"
            },
            {
              "name": "persist-nav-state",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the navigation's open/closed state is persisted across page loads.\nThis is useful for multi-page apps, where clicks on links trigger a full page load.",
              "fieldName": "persistNavState"
            },
            {
              "name": "sync-nav-state",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the navigation's open/closed state and width is synced across tabs/windows on the same origin.\nThis is useful for long-lived app sessions where you may have multiple tabs/windows open at once.",
              "fieldName": "syncNavState"
            },
            {
              "name": "padding",
              "type": {
                "text": "'m' | 'none'"
              },
              "default": "'m'",
              "description": "Controls the padding of the default main section slot. When set to “none”,\nthe nav and header slots will still have padding.",
              "fieldName": "padding"
            },
            {
              "name": "sticky",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the layout's header has sticky positioning.",
              "fieldName": "sticky"
            },
            {
              "name": "sticky-footer",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the layout's footer has sticky positioning.",
              "fieldName": "stickyFooter"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "structure",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- To visually group content in a layout section, use the Card component.\n- To lay out a set of smaller components, use the Stack component.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Never put layout component inside another HTML landmark.\n- Don’t use when you need a vertical or horizontal layout system. Use Stack component instead.\n\n</div>\n\n---\n\n## Additional considerations\n\n- Layout component uses `<main>` element internally which is an HTML sectioning element which by default defines an ARIA landmark role. For that reason you should never put layout component inside another HTML landmark.\n\n---\n\n## Theming\n\nPlease see the [Accent color](/themes/#accent-color) and [Top Bar theming](/themes/#top-bar-theming) sections in our theming documentation for detailed guidelines.\n\n<nord-button variant=\"primary\" href=\"/themes/#accent-color\">Theming Guidelines</nord-button>\n",
          "examples": [],
          "dependencies": [
            "icon",
            "nav-toggle"
          ],
          "tagName": "nord-layout",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Layout",
            "module": "src/layout/Layout.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-layout",
          "declaration": {
            "name": "Layout",
            "module": "src/layout/Layout.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/localization/LocalizeController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "LocalizeController",
          "members": [
            {
              "kind": "field",
              "name": "unsubscribeDocumentLang",
              "type": {
                "text": "ReturnType<typeof subscribeToDocumentLang> | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "unsubscribeTranslationRegistration",
              "type": {
                "text": "ReturnType<typeof subscribeToTranslationRegistration> | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "observer",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "resolvedTranslation",
              "type": {
                "text": "Translation"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "lang",
              "description": "The lang of the document or element, with element taking precedence",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "resolvedLang",
              "description": "The lang of the translation being applied.\nThis may not match the document/element lang, in case of fallback translation",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "hostConnected"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            },
            {
              "kind": "method",
              "name": "term",
              "return": {
                "type": {
                  "text": "Result<FallbackType[TComponentName], Key>"
                }
              },
              "parameters": [
                {
                  "name": "key",
                  "type": {
                    "text": "Key"
                  }
                },
                {
                  "name": "args",
                  "type": {
                    "text": "FuncParams<FallbackType[TComponentName], Key>"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleLangChange",
              "privacy": "private"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "LocalizeController",
          "declaration": {
            "name": "LocalizeController",
            "module": "src/localization/LocalizeController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/localization/en-us.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "en",
          "type": {
            "text": "object"
          },
          "default": "{ '$lang': 'en-US', '$name': 'English', '$dir': 'ltr' as 'ltr' | 'rtl', 'nord-command-menu': commandMenuLocalization, 'nord-calendar': calendarLocalization, 'nord-date-picker': datePickerLocalization, 'nord-modal': modalLocalization, 'nord-nav-toggle': navToggleLocalization, 'nord-textarea': textareaLocalization, 'nord-notification': notificationLocalization, 'nord-message': messageLocalization, 'nord-tag': tagLocalization, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "en",
            "module": "src/localization/en-us.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/localization/fi-fi.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "fi",
          "type": {
            "text": "Translation"
          },
          "default": "{ '$lang': 'fi', '$name': 'Suomi', '$dir': 'ltr', 'nord-command-menu': { instructions: 'Paina \\'Enter\\' vahvistaaksesi valinnan tai \\'Escape\\' peruuttaaksesi', inputLabel: 'Kirjoita komento jonka haluat suorittaa.', footerArrowKeys: 'Siirry', footerEnterKey: 'Valitse', footerEscapeKey: 'Esc sulje', footerBackspaceKey: 'Siirry takaisin', noResults: searchTerm => `Ei tuloksia haulle \"${searchTerm}\"`, tip: 'Vinkki: jotkin haut vaativat tarkan hakutermin. Koita kirjoittaa koko hakutermi kokonaisuudessaan, tai kokeile toista sanaa tai fraasia.', placeholder: 'Kirjoita komento tai hakusana…', }, 'nord-calendar': { prevMonthLabel: 'Edellinen kuukausi', nextMonthLabel: 'Seuraava kuukausi', monthSelectLabel: 'Kuukausi', yearSelectLabel: 'Vuosi', }, 'nord-date-picker': { modalHeading: 'Valitse päivämäärä', closeLabel: 'Sulje ikkuna', buttonLabel: 'Valitse päivämäärä', selectedDateMessage: 'Valittu päivämäärä on', dateOutOfMinBound: (minDate: string) => `Päivämäärä on oltava ${minDate} tai myöhemmin`, dateOutOfMaxBound: (maxDate: string) => `Päivämäärä on oltava ${maxDate} tai aikaisemmin`, }, 'nord-modal': { closeLabel: 'Sulje ikkuna', }, 'nord-nav-toggle': { label: 'Näytä/Piilota valikko', }, 'nord-textarea': { remainingCharacters: (remaining: number) => `${remaining} merkkiä jäljellä`, }, 'nord-notification': { dismissLabel: 'Sulje ilmoitus', }, 'nord-message': { unreadLabel: 'Lukematon', }, 'nord-tag': { removeLabel: 'Poista', }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "fi",
            "module": "src/localization/fi-fi.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/localization/translation.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "clearTranslations",
          "description": "Removes all registered translations"
        },
        {
          "kind": "function",
          "name": "registerTranslation",
          "parameters": [
            {
              "name": "translation",
              "type": {
                "text": "(Translation | PartialTranslation)[]"
              }
            }
          ],
          "description": "Registers one or more translations. If a translation for the same language\nalready exists, the new translation will be deep-merged with the existing one.\nTranslations can be partial — only the fields you provide will override existing values."
        },
        {
          "kind": "function",
          "name": "subscribeToDocumentLang",
          "return": {
            "type": {
              "text": ""
            }
          },
          "parameters": [
            {
              "name": "onChange",
              "type": {
                "text": "() => void"
              },
              "description": "callback for when document `lang` attr changes"
            }
          ],
          "description": "subscribe to document language changes"
        },
        {
          "kind": "function",
          "name": "subscribeToTranslationRegistration",
          "return": {
            "type": {
              "text": ""
            }
          },
          "parameters": [
            {
              "name": "onChange",
              "type": {
                "text": "() => void"
              },
              "description": "callback for when new translations are registered"
            }
          ],
          "description": "subscribe to translation registration changes"
        },
        {
          "kind": "function",
          "name": "isTranslationRegistered",
          "parameters": [
            {
              "name": "lang",
              "type": {
                "text": "string"
              },
              "description": "the lang code e.g. \"en\" or \"en-GB\""
            }
          ],
          "description": "Check whether there is a translation registered for the given lang"
        },
        {
          "kind": "function",
          "name": "resolveTranslation",
          "parameters": [
            {
              "name": "langCode",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Picks the most appropriate translation for the given language, from most specific to least specific.\nFirst tries lang + region, then lang only, then fallback."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "clearTranslations",
          "declaration": {
            "name": "clearTranslations",
            "module": "src/localization/translation.ts"
          }
        },
        {
          "kind": "js",
          "name": "registerTranslation",
          "declaration": {
            "name": "registerTranslation",
            "module": "src/localization/translation.ts"
          }
        },
        {
          "kind": "js",
          "name": "subscribeToDocumentLang",
          "declaration": {
            "name": "subscribeToDocumentLang",
            "module": "src/localization/translation.ts"
          }
        },
        {
          "kind": "js",
          "name": "subscribeToTranslationRegistration",
          "declaration": {
            "name": "subscribeToTranslationRegistration",
            "module": "src/localization/translation.ts"
          }
        },
        {
          "kind": "js",
          "name": "isTranslationRegistered",
          "declaration": {
            "name": "isTranslationRegistered",
            "module": "src/localization/translation.ts"
          }
        },
        {
          "kind": "js",
          "name": "resolveTranslation",
          "declaration": {
            "name": "resolveTranslation",
            "module": "src/localization/translation.ts"
          }
        },
        {
          "kind": "js",
          "name": "fallback",
          "declaration": {
            "name": "en",
            "module": "src/localization/translation.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/message/Message.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Message', component: 'nord-message', tags: ['autodocs'], argTypes: { href: { control: 'text' }, highlight: { control: 'text' }, unread: { control: 'text' }, content: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { content: 'This is a message.', }, render: args => html` <nord-message href=${args.href || nothing} highlight=${args.highlight || nothing} unread=${args.unread || nothing}>${args.content}</nord-message> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-message unread> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> `, }"
        },
        {
          "kind": "variable",
          "name": "Highlight",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-message highlight unread> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> `, }"
        },
        {
          "kind": "variable",
          "name": "Links",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-message unread href=\"#\"> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread href=\"#\"> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread href=\"#\"> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> `, }"
        },
        {
          "kind": "variable",
          "name": "Read",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-message unread> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/message/Message.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/message/Message.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/message/Message.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Highlight",
          "declaration": {
            "name": "Highlight",
            "module": "src/message/Message.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Links",
          "declaration": {
            "name": "Links",
            "module": "src/message/Message.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Read",
          "declaration": {
            "name": "Read",
            "module": "src/message/Message.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/message/Message.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Message represents a specific item within a collection,\nsuch as notifications, tasks or conversations. Message\ncan be placed directly inside a dropdown component.",
          "name": "Message",
          "cssProperties": [
            {
              "description": "Controls the border color of the message, using our [color tokens](/tokens/#color).",
              "name": "--n-message-border-color",
              "default": "var(--n-color-border)"
            }
          ],
          "slots": [
            {
              "description": "The message content.",
              "name": ""
            },
            {
              "description": "Used to place content after the message. Typically used for a timestamp.",
              "name": "footer"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "localize",
              "privacy": "private",
              "default": "new LocalizeController<'nord-message'>(this)"
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "The url the message should link to.",
              "attribute": "href",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "highlight",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Highlight the message visually. This is meant for highlighting\na new message that just appeared. Highlight style should be removed\nafter the user has seen the message and there’s been a timeout of\ne.g. 30 seconds.",
              "attribute": "highlight",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "unread",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Mark the message as unread. By default messages are read.",
              "attribute": "unread",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "The url the message should link to.",
              "fieldName": "href"
            },
            {
              "name": "highlight",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Highlight the message visually. This is meant for highlighting\na new message that just appeared. Highlight style should be removed\nafter the user has seen the message and there’s been a timeout of\ne.g. 30 seconds.",
              "fieldName": "highlight"
            },
            {
              "name": "unread",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Mark the message as unread. By default messages are read.",
              "fieldName": "unread"
            }
          ],
          "mixins": [
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [
            {
              "name": "unreadLabel",
              "description": "Label for the unread messages."
            }
          ],
          "status": "ready",
          "category": "action",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Messages should always perform an action when clicked.\n- The click action should navigate to a new page or provide more detail about the message.\n- Mark unread messages as read on user interaction.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t slot other components inside a message.\n\n</div>\n\n---\n\n## Content guidelines\n\nMessage content should be clear, accurate and easy to understand:\n\n<div class=\"n-usage n-usage-do\">Ariel Salminen arrived to clinic with Pixie cat.</div>\n<div class=\"n-usage n-usage-dont\">Patient arrived</div>\n\nWhen writing the message content, be concise. Keep content to 1 to 2 sentence:\n\n<div class=\"n-usage n-usage-do\">You’ve reached the limit of 30 users included in your plan. Upgrade to add more.</div>\n<div class=\"n-usage n-usage-dont\">You have reached the user limit. Your clinic can only have a maximum of 30 users. To add more users, remove users you no longer need or upgrade your plan to add more.</div>\n\nWhen writing the notification content, always write it in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Ariel Salminen arrived to clinic with Pixie cat.</div>\n<div class=\"n-usage n-usage-dont\">Ariel Salminen Arrived To Clinic With Pixie Cat.</div>\n\nAlways end in punctuation:\n\n<div class=\"n-usage n-usage-do\">Ariel Salminen arrived to clinic with Pixie cat.</div>\n<div class=\"n-usage n-usage-dont\">Ariel Salminen arrived to clinic with Pixie cat</div>\n\nAvoid all caps for messages:\n\n<div class=\"n-usage n-usage-do\">Nina Williams arrived to clinic with Norfryd</div>\n<div class=\"n-usage n-usage-dont\">NINA WILLIAMS ARRIVED TO CLINIC WITH NORFRYD</div>\n",
          "examples": [],
          "dependencies": [
            "dropdown-item"
          ],
          "tagName": "nord-message",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Message",
            "module": "src/message/Message.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-message",
          "declaration": {
            "name": "Message",
            "module": "src/message/Message.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/message/localization.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "localization",
          "type": {
            "text": "object"
          },
          "default": "{ unreadLabel: 'Unread', }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "localization",
            "module": "src/message/localization.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/modal/Modal.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Modal', component: 'nord-modal', tags: ['autodocs'], argTypes: { open: { control: 'boolean' }, size: { control: 'select', options: ['s', 'm', 'l', 'xl'], }, scrollable: { control: 'boolean' }, headerText: { control: 'text', name: 'Header text' }, bodyText: { control: 'text', name: 'Body text' }, cancelText: { control: 'text', name: 'Cancel button text' }, confirmText: { control: 'text', name: 'Confirm button text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { open: false, size: 's', scrollable: false, headerText: 'Modal title', bodyText: 'Modal body text goes here.', cancelText: 'Cancel', confirmText: 'Save changes', }, render: (args) => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal id=\"modal\" size=\"${args.size}\" ${args.open ? 'open' : ''} ${args.scrollable ? 'scrollable' : ''} aria-labelledby=\"title\"> <h2 slot=\"header\" id=\"title\">${args.headerText}</h2> <p class=\"n-reset\">${args.bodyText}</p> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand id=\"cancelButton\">${args.cancelText}</nord-button> <nord-button expand id=\"confirmButton\" variant=\"primary\" autofocus>${args.confirmText}</nord-button> </nord-button-group> </nord-modal>` container.querySelector('#openButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) container.querySelector('#cancelButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).close()) container.querySelector('#confirmButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).close()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal id=\"modal\" size=\"s\" aria-labelledby=\"title\"> <h2 slot=\"header\" id=\"title\">Modal title</h2> <p class=\"n-reset\">Modal body text goes here.</p> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand id=\"cancelButton\">Cancel</nord-button> <nord-button expand id=\"confirmButton\" variant=\"primary\" autofocus>Save changes</nord-button> </nord-button-group> </nord-modal>` container.querySelector('#openButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) container.querySelector('#cancelButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).close()) container.querySelector('#confirmButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).close()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "CustomFooter",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal id=\"modal\" aria-labelledby=\"title\" size=\"s\"> <h2 slot=\"header\" id=\"title\">Delete patient?</h2> <form method=\"dialog\" id=\"myForm\"> <p class=\"n-reset\">All information you have entered will be deleted.</p> </form> <nord-stack slot=\"footer\" direction=\"horizontal\" align-items=\"center\" gap=\"s\"> <nord-stack style=\"flex: 1\" direction=\"horizontal\" gap=\"s\" align-items=\"center\"> <nord-icon name=\"interface-warning\"></nord-icon> <p>This cannot be undone</p> </nord-stack> <nord-button-group variant=\"spaced\"> <nord-button form=\"myForm\">Cancel</nord-button> <nord-button form=\"myForm\" variant=\"danger\" autofocus>Delete</nord-button> </nord-button-group> </nord-stack> </nord-modal>` container.querySelector('#openButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Destructive",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal id=\"modal\" size=\"s\" open aria-labelledby=\"title\"> <h2 slot=\"header\" id=\"title\">Discard changes?</h2> <p class=\"n-reset\">All information you have entered will be deleted.</p> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand id=\"cancelButton\">Cancel</nord-button> <nord-button expand id=\"confirmButton\" variant=\"danger\" autofocus>Discard</nord-button> </nord-button-group> </nord-modal>` container.querySelector('#openButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) container.querySelector('#cancelButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).close()) container.querySelector('#confirmButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).close()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "FeatureWithoutBody",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal size=\"m\" id=\"modal\" open aria-labelledby=\"title\"> <svg slot=\"feature\" role=\"img\" aria-labelledby=\"title description\" width=\"782\" height=\"412\" viewBox=\"0 0 782 412\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" > <title id=\"title\">Lorem ipsum dolor sit</title> <desc id=\"description\"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos deleniti nemo sequi voluptates fugit id, facere velit? Possimus, nobis sit. </desc> <rect width=\"782\" height=\"412\" fill=\"#FF857D\" /> <g clip-path=\"url(#clip0_5_211)\"> <rect width=\"782\" height=\"412\" fill=\"#F6F8F8\" /> <rect x=\"391\" width=\"206\" height=\"206\" fill=\"#CBD2D7\" /> <rect x=\"391\" y=\"206\" width=\"206\" height=\"206\" fill=\"#F6F8F8\" /> <rect x=\"597\" width=\"195.5\" height=\"206\" fill=\"#D8DDE1\" /> <rect x=\"597\" y=\"206\" width=\"195.5\" height=\"206\" fill=\"#E3E9EB\" /> <rect x=\"389\" y=\"266\" width=\"4.00002\" height=\"400\" transform=\"rotate(90 389 266)\" fill=\"#D8DDE1\" /> <rect x=\"389\" y=\"326\" width=\"4.00002\" height=\"400\" transform=\"rotate(90 389 326)\" fill=\"#D8DDE1\" /> <rect x=\"389\" y=\"386\" width=\"4.00002\" height=\"400\" transform=\"rotate(90 389 386)\" fill=\"#D8DDE1\" /> <path d=\"M-11 208H389V416H-11V208Z\" stroke=\"#D8DDE1\" stroke-width=\"4\" /> <rect x=\"327\" y=\"210\" width=\"4\" height=\"198\" fill=\"#D8DDE1\" /> <rect x=\"267\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"207\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"147\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"87\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"27\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"391\" y=\"206\" width=\"206\" height=\"206\" rx=\"103\" fill=\"#3559C7\" /> <circle opacity=\"0.1\" cx=\"269\" cy=\"328\" r=\"60\" stroke=\"white\" stroke-width=\"4\" /> <rect x=\"-65\" y=\"268\" width=\"394\" height=\"210\" rx=\"60\" stroke=\"#FC685E\" stroke-width=\"4\" /> <path d=\"M180.384 167H206.256L163.248 48.392H134.52L91.512 167H117.384L124.44 146.168H173.328L180.384 167ZM131.832 124.328L148.968 74.264L165.936 124.328H131.832ZM289.781 148.016C287.429 148.016 286.085 146.336 286.085 143.312V111.56C286.085 92.744 272.981 81.656 250.301 81.656C230.981 81.656 217.709 91.568 213.509 108.536L233.837 113.576C235.181 105.344 241.397 100.472 249.965 100.472C258.197 100.472 263.069 104.336 263.069 110.384V110.72C263.069 114.248 260.885 116.936 256.685 117.608L235.181 120.968C219.221 123.32 209.981 131.888 209.981 144.656C209.981 160.112 220.229 169.016 237.869 169.016C249.797 169.016 259.037 164.816 264.581 157.256C267.101 163.64 272.981 167 281.549 167H293.813V148.016H289.781ZM245.429 152.384C237.701 152.384 232.997 149.024 232.997 143.48C232.997 138.44 237.029 135.08 243.413 134.072L263.069 131.048V134.072C263.069 145.16 256.013 152.384 245.429 152.384Z\" fill=\"#667680\" /> </g> <defs> <clipPath id=\"clip0_5_211\"> <rect width=\"782\" height=\"412\" fill=\"white\" /> </clipPath> </defs> </svg> <form method=\"dialog\" slot=\"footer\"> <nord-button expand variant=\"primary\">Finish</nord-button> </form> </nord-modal>` container.querySelector('#openButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "FeatureWithoutFooter",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal size=\"m\" id=\"modal\" open aria-labelledby=\"title\"> <h2 slot=\"header\">Lorem ipsum dolor sit</h2> <svg slot=\"feature\" role=\"img\" aria-labelledby=\"title description\" width=\"782\" height=\"412\" viewBox=\"0 0 782 412\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" > <title id=\"title\">Lorem ipsum dolor sit</title> <desc id=\"description\"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos deleniti nemo sequi voluptates fugit id, facere velit? Possimus, nobis sit. </desc> <rect width=\"782\" height=\"412\" fill=\"#FF857D\" /> <g clip-path=\"url(#clip0_5_211)\"> <rect width=\"782\" height=\"412\" fill=\"#F6F8F8\" /> <rect x=\"391\" width=\"206\" height=\"206\" fill=\"#CBD2D7\" /> <rect x=\"391\" y=\"206\" width=\"206\" height=\"206\" fill=\"#F6F8F8\" /> <rect x=\"597\" width=\"195.5\" height=\"206\" fill=\"#D8DDE1\" /> <rect x=\"597\" y=\"206\" width=\"195.5\" height=\"206\" fill=\"#E3E9EB\" /> <rect x=\"389\" y=\"266\" width=\"4.00002\" height=\"400\" transform=\"rotate(90 389 266)\" fill=\"#D8DDE1\" /> <rect x=\"389\" y=\"326\" width=\"4.00002\" height=\"400\" transform=\"rotate(90 389 326)\" fill=\"#D8DDE1\" /> <rect x=\"389\" y=\"386\" width=\"4.00002\" height=\"400\" transform=\"rotate(90 389 386)\" fill=\"#D8DDE1\" /> <path d=\"M-11 208H389V416H-11V208Z\" stroke=\"#D8DDE1\" stroke-width=\"4\" /> <rect x=\"327\" y=\"210\" width=\"4\" height=\"198\" fill=\"#D8DDE1\" /> <rect x=\"267\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"207\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"147\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"87\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"27\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"391\" y=\"206\" width=\"206\" height=\"206\" rx=\"103\" fill=\"#3559C7\" /> <circle opacity=\"0.1\" cx=\"269\" cy=\"328\" r=\"60\" stroke=\"white\" stroke-width=\"4\" /> <rect x=\"-65\" y=\"268\" width=\"394\" height=\"210\" rx=\"60\" stroke=\"#FC685E\" stroke-width=\"4\" /> <path d=\"M180.384 167H206.256L163.248 48.392H134.52L91.512 167H117.384L124.44 146.168H173.328L180.384 167ZM131.832 124.328L148.968 74.264L165.936 124.328H131.832ZM289.781 148.016C287.429 148.016 286.085 146.336 286.085 143.312V111.56C286.085 92.744 272.981 81.656 250.301 81.656C230.981 81.656 217.709 91.568 213.509 108.536L233.837 113.576C235.181 105.344 241.397 100.472 249.965 100.472C258.197 100.472 263.069 104.336 263.069 110.384V110.72C263.069 114.248 260.885 116.936 256.685 117.608L235.181 120.968C219.221 123.32 209.981 131.888 209.981 144.656C209.981 160.112 220.229 169.016 237.869 169.016C249.797 169.016 259.037 164.816 264.581 157.256C267.101 163.64 272.981 167 281.549 167H293.813V148.016H289.781ZM245.429 152.384C237.701 152.384 232.997 149.024 232.997 143.48C232.997 138.44 237.029 135.08 243.413 134.072L263.069 131.048V134.072C263.069 145.16 256.013 152.384 245.429 152.384Z\" fill=\"#667680\" /> </g> <defs> <clipPath id=\"clip0_5_211\"> <rect width=\"782\" height=\"412\" fill=\"white\" /> </clipPath> </defs> </svg> </nord-modal>` container.querySelector('#openButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Feature",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal size=\"m\" id=\"modal\" open aria-labelledby=\"title\"> <svg slot=\"feature\" width=\"782\" height=\"412\" viewBox=\"0 0 782 412\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <rect width=\"782\" height=\"412\" fill=\"#FF857D\" /> <g clip-path=\"url(#clip0_5_211)\"> <rect width=\"782\" height=\"412\" fill=\"#F6F8F8\" /> <rect x=\"391\" width=\"206\" height=\"206\" fill=\"#CBD2D7\" /> <rect x=\"391\" y=\"206\" width=\"206\" height=\"206\" fill=\"#F6F8F8\" /> <rect x=\"597\" width=\"195.5\" height=\"206\" fill=\"#D8DDE1\" /> <rect x=\"597\" y=\"206\" width=\"195.5\" height=\"206\" fill=\"#E3E9EB\" /> <rect x=\"389\" y=\"266\" width=\"4.00002\" height=\"400\" transform=\"rotate(90 389 266)\" fill=\"#D8DDE1\" /> <rect x=\"389\" y=\"326\" width=\"4.00002\" height=\"400\" transform=\"rotate(90 389 326)\" fill=\"#D8DDE1\" /> <rect x=\"389\" y=\"386\" width=\"4.00002\" height=\"400\" transform=\"rotate(90 389 386)\" fill=\"#D8DDE1\" /> <path d=\"M-11 208H389V416H-11V208Z\" stroke=\"#D8DDE1\" stroke-width=\"4\" /> <rect x=\"327\" y=\"210\" width=\"4\" height=\"198\" fill=\"#D8DDE1\" /> <rect x=\"267\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"207\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"147\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"87\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"27\" y=\"210\" width=\"4\" height=\"202\" fill=\"#D8DDE1\" /> <rect x=\"391\" y=\"206\" width=\"206\" height=\"206\" rx=\"103\" fill=\"#3559C7\" /> <circle opacity=\"0.1\" cx=\"269\" cy=\"328\" r=\"60\" stroke=\"white\" stroke-width=\"4\" /> <rect x=\"-65\" y=\"268\" width=\"394\" height=\"210\" rx=\"60\" stroke=\"#FC685E\" stroke-width=\"4\" /> <path d=\"M180.384 167H206.256L163.248 48.392H134.52L91.512 167H117.384L124.44 146.168H173.328L180.384 167ZM131.832 124.328L148.968 74.264L165.936 124.328H131.832ZM289.781 148.016C287.429 148.016 286.085 146.336 286.085 143.312V111.56C286.085 92.744 272.981 81.656 250.301 81.656C230.981 81.656 217.709 91.568 213.509 108.536L233.837 113.576C235.181 105.344 241.397 100.472 249.965 100.472C258.197 100.472 263.069 104.336 263.069 110.384V110.72C263.069 114.248 260.885 116.936 256.685 117.608L235.181 120.968C219.221 123.32 209.981 131.888 209.981 144.656C209.981 160.112 220.229 169.016 237.869 169.016C249.797 169.016 259.037 164.816 264.581 157.256C267.101 163.64 272.981 167 281.549 167H293.813V148.016H289.781ZM245.429 152.384C237.701 152.384 232.997 149.024 232.997 143.48C232.997 138.44 237.029 135.08 243.413 134.072L263.069 131.048V134.072C263.069 145.16 256.013 152.384 245.429 152.384Z\" fill=\"#667680\" /> </g> <defs> <clipPath id=\"clip0_5_211\"> <rect width=\"782\" height=\"412\" fill=\"white\" /> </clipPath> </defs> </svg> <div class=\"n-reset n-typeset\"> <h2 id=\"title\">Lorem ipsum dolor sit</h2> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos deleniti nemo sequi voluptates fugit id, facere velit? Possimus, nobis sit. </p> <p>Modi, beatae debitis suscipit fugit et obcaecati vitae laudantium.</p> <p> Facere dicta tenetur, a quam veniam ratione, nam minus, odio cumque ipsam dolores! Eligendi et ipsum praesentium obcaecati! Accusamus, tenetur? </p> </div> <form method=\"dialog\" slot=\"footer\"> <nord-button expand variant=\"primary\">Finish</nord-button> </form> </nord-modal>` container.querySelector('#openButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "FormComplex",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<style>nord-textarea { --n-textarea-block-size: 150px; } @media (max-width: 640px) { nord-stack { flex-direction: column; } }</style> <nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal id=\"modal\" size=\"l\" aria-labelledby=\"title\" open> <h2 id=\"title\" slot=\"header\">Add note</h2> <form method=\"dialog\" id=\"myForm\"> <nord-stack> <nord-stack direction=\"horizontal\"> <nord-select expand label=\"Type\" autofocus> <option value=\"1\">Other note</option> <option value=\"2\">Another note</option> <option value=\"3\">Yet another note</option> </nord-select> <nord-input label=\"Title\" expand></nord-input> </nord-stack> <nord-stack direction=\"horizontal\"> <nord-input label=\"Client\" expand type=\"search\"></nord-input> <nord-input label=\"Patients\" expand type=\"search\"></nord-input> </nord-stack> <nord-stack direction=\"horizontal\"> <nord-select expand label=\"Consultation\"> <option value=\"1\">22/03/2022 16:02 - Sargo hair loss</option> <option value=\"2\">Consultation 2</option> <option value=\"3\">Consultation 3</option> <option value=\"4\">Consultation 4</option> </nord-select> <nord-select label=\"Diagnostic imaging request\" expand placeholder=\"---\"> <option value=\"1\">Option 1</option> <option value=\"2\">Option 2</option> <option value=\"3\">Option 3</option> <option value=\"4\">Option 4</option> </nord-select> </nord-stack> <nord-select label=\"Consultation laboratory request\" expand style=\"width: calc(50% - 0.5em)\" placeholder=\"---\"> <option value=\"1\">Option 1</option> <option value=\"2\">Option 2</option> <option value=\"3\">Option 3</option> <option value=\"4\">Option 4</option> </nord-select> <nord-textarea expand label=\"Note\" resize=\"auto\"></nord-textarea> </nord-stack> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button form=\"myForm\" expand>Cancel</nord-button> <nord-button form=\"myForm\" expand variant=\"primary\">Save</nord-button> </nord-button-group> </nord-modal>` container.querySelector('#openButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "FormMethodDialog",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal id=\"modal\" open aria-labelledby=\"title\"> <h2 slot=\"header\" id=\"title\">Using the \"dialog\" method for forms</h2> <form id=\"myForm\" method=\"dialog\" class=\"n-reset n-typeset\"> <p> If you set a form's method to <code>\"dialog\"</code>, a modal can be dismissed by submitting that form. This is convenient as it requires no additional javascript. </p> <p> When the form is submitted, the modal's <code>returnValue</code> is set to the <code>value</code> of the submit button that was clicked. </p> <p> A button can be associated with a form, by setting the button's <code>form</code> attribute to the form's <code>id</code>. </p> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button form=\"myForm\" expand value=\"cancel\">Cancel</nord-button> <nord-button form=\"myForm\" expand value=\"yes\" variant=\"primary\" autofocus>Save</nord-button> </nord-button-group> </nord-modal>` const modal = container.querySelector('#modal') as any container.querySelector('#openButton')!.addEventListener('click', () => modal.showModal()) modal.addEventListener('close', () => { console.log(modal.returnValue) }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Form",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button id=\"trigger\" variant=\"primary\">Open modal</nord-button> <nord-modal id=\"modal\" open aria-labelledby=\"title\"> <h2 slot=\"header\" id=\"title\">Give us feedback</h2> <form method=\"dialog\" id=\"myForm\"> <nord-stack> <nord-select autofocus expand name=\"input-1\" label=\"How would you describe the interface?\" placeholder=\"Pick an option\" > <option value=\"1\">Something is missing</option> <option value=\"2\">I'm confused or surprised</option> <option value=\"3\">It's missing a feature</option> <option value=\"4\">It's broken</option> <option value=\"5\">Something else</option> </nord-select> <nord-textarea expand label=\"Is there anything else you'd like to add?\" hint=\"(Optional)\" placeholder=\"Ex. I had an idea…\" name=\"input-2\" ></nord-textarea> <p> <strong>Note:</strong> some additional information may be included, including your email address. If you're looking to send feedback unrelated to this interface, email us. </p> </nord-stack> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand form=\"myForm\" value=\"cancel\">Cancel</nord-button> <nord-button expand form=\"myForm\" type=\"submit\" value=\"add\" variant=\"primary\">Submit</nord-button> </nord-button-group> </nord-modal> <div class=\"n-margin-bs-m\"> <output id=\"output\"></output> <pre id=\"values\"></pre> </div>` const modal = container.querySelector('#modal') as any const myForm = container.querySelector('#myForm') as HTMLFormElement const output = container.querySelector('#output') as HTMLElement const values = container.querySelector('#values') as HTMLElement container.querySelector('#trigger')!.addEventListener('click', () => modal.showModal()) myForm.addEventListener('submit', (e) => { values.innerText = JSON.stringify(Object.fromEntries(new FormData(e.target as HTMLFormElement)), null, 2) }) modal.addEventListener('close', () => { output.innerHTML = `Modal <code>returnValue</code>: <code>${modal.returnValue}</code>` }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "ManagingFocus",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal id=\"modal\" open aria-labelledby=\"title\"> <h2 slot=\"header\" id=\"title\">Managing focus in modals</h2> <form id=\"form\" method=\"dialog\" class=\"n-reset n-typeset\"> <p> Add the <code>autofocus</code> attribute to any interactive element within the modal, to have it automatically focus whenever the modal is opened. </p> <p>In this example the attribute has been added to the Submit element</p> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button form=\"form\" expand>Cancel</nord-button> <nord-button form=\"form\" expand variant=\"primary\" autofocus>Submit</nord-button> </nord-button-group> </nord-modal>` container.querySelector('#openButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "MultipleModals",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button id=\"trigger\" variant=\"primary\">Open modal</nord-button> <nord-modal id=\"modal\" open aria-labelledby=\"title\"> <h2 slot=\"header\" id=\"title\">Give us feedback</h2> <div class=\"n-typeset n-margin-be-m\"> <p> This example demonstrates how to use multiple modals to get confirmation from a user before discarding their work. If you attempt to close this modal via the close button, pressing the <kbd>Esc</kbd> key, or clicking outside the modal, a second modal will be shown asking you to confirm your action. </p> <p> The first modal can only be closed by submitting its form or by confirming you want to discard your work in the second modal. </p> </div> <form method=\"dialog\" id=\"myForm\"> <nord-textarea expand label=\"Your message\" value=\"Lorem ipsum dolor sit amet consectetur adipisicing elit. Corrupti, iure?\" ></nord-textarea> </form> <nord-button slot=\"footer\" expand form=\"myForm\" type=\"submit\" variant=\"primary\">Submit feedback</nord-button> </nord-modal> <nord-modal id=\"confirmModal\" size=\"s\" aria-labelledby=\"confirm-title\"> <h2 slot=\"header\" id=\"confirm-title\">Discard changes?</h2> <p class=\"n-reset\">All information you have entered will be deleted.</p> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand id=\"cancelButton\">Cancel</nord-button> <nord-button expand id=\"confirmButton\" variant=\"danger\" autofocus>Discard</nord-button> </nord-button-group> </nord-modal>` const modal = container.querySelector('#modal') as any const confirmModal = container.querySelector('#confirmModal') as any container.querySelector('#trigger')!.addEventListener('click', () => modal.showModal()) modal.addEventListener('cancel', (e: Event) => { e.preventDefault() confirmModal.showModal() }) container.querySelector('#cancelButton')!.addEventListener('click', () => confirmModal.close()) container.querySelector('#confirmButton')!.addEventListener('click', () => { confirmModal.close() modal.close() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "PreventingClose",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal id=\"modal\" size=\"s\" open aria-labelledby=\"title\"> <h2 slot=\"header\" id=\"title\">Preventing close</h2> <form method=\"dialog\" id=\"myForm\"> <nord-stack> <p> When a user hits Escape key, clicks the close button, or clicks outside, the modal emits a <code>cancel</code> event. </p> <p>If <code>preventDefault()</code> is called on the cancel event, then the modal will not close.</p> <nord-checkbox autofocus id=\"checkbox\" label=\"Prevent close?\"></nord-checkbox> </nord-stack> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand form=\"myForm\">Cancel</nord-button> <nord-button expand form=\"myForm\" variant=\"primary\">Submit</nord-button> </nord-button-group> </nord-modal>` const modal = container.querySelector('#modal') as any const checkbox = container.querySelector('#checkbox') as any container.querySelector('#openButton')!.addEventListener('click', () => modal.showModal()) modal.addEventListener('cancel', (e: Event) => { if (checkbox.checked) { console.log('preventing close') e.preventDefault() } }) modal.addEventListener('close', () => { console.log('modal closed') }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Persistent",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal id=\"modal\" size=\"s\" open persistent aria-labelledby=\"title\"> <h2 slot=\"header\" id=\"title\">Persistent modal</h2> <nord-stack> <p class=\"n-reset\"> This modal uses the <code>persistent</code> attribute. It cannot be dismissed by clicking the backdrop or pressing Escape, and the close button is automatically hidden. </p> <p>Only the action buttons below can close it.</p> </nord-stack> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand id=\"cancelButton\">Cancel</nord-button> <nord-button expand id=\"confirmButton\" variant=\"primary\" autofocus>Confirm</nord-button> </nord-button-group> </nord-modal>` container.querySelector('#openButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) container.querySelector('#cancelButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).close()) container.querySelector('#confirmButton')!.addEventListener('click', () => (container.querySelector('#modal') as any).close()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "ScrollBehavior",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button-group variant=\"spaced\" wrap> <nord-button id=\"outerButton\" variant=\"primary\">Scroll externally</nord-button> <nord-button id=\"innerButton\" variant=\"primary\">Scroll internally</nord-button> </nord-button-group> <nord-modal id=\"outerModal\" aria-labelledby=\"outerHeader\"> <h2 slot=\"header\" id=\"outerHeader\">Scroll externally</h2> <form method=\"dialog\" id=\"outerForm\" class=\"n-typeset n-margin-be-m\"> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p> <div style=\"height: 80vh\"></div> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis tenetur amet temporibus nulla? Quisquam, quaerat sed! Assumenda itaque dolor ratione id voluptatum, excepturi eius voluptas iste facilis ut, quas minus. </p> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button form=\"outerForm\" expand value=\"cancel\">Cancel</nord-button> <nord-button form=\"outerForm\" expand variant=\"primary\" value=\"accept\">Accept terms</nord-button> </nord-button-group> </nord-modal> <nord-modal id=\"innerModal\" aria-labelledby=\"innerHeader\" scrollable> <h2 slot=\"header\" id=\"innerHeader\">Scroll internally</h2> <form method=\"dialog\" id=\"innerForm\" class=\"n-typeset n-margin-be-m\"> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p> <div style=\"height: 80vh\"></div> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis tenetur amet temporibus nulla? Quisquam, quaerat sed! Assumenda itaque dolor ratione id voluptatum, excepturi eius voluptas iste facilis ut, quas minus. </p> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button form=\"innerForm\" expand value=\"cancel\">Cancel</nord-button> <nord-button form=\"innerForm\" expand variant=\"primary\" value=\"accept\">Accept terms</nord-button> </nord-button-group> </nord-modal>` container.querySelector('#outerButton')!.addEventListener('click', () => (container.querySelector('#outerModal') as any).showModal()) container.querySelector('#innerButton')!.addEventListener('click', () => (container.querySelector('#innerModal') as any).showModal()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button-group variant=\"spaced\" wrap> <nord-button id=\"buttonSmall\" variant=\"primary\">Open small modal</nord-button> <nord-button id=\"buttonMedium\" variant=\"primary\">Open medium modal</nord-button> <nord-button id=\"buttonLarge\" variant=\"primary\">Open large modal</nord-button> <nord-button id=\"buttonExtraLarge\" variant=\"primary\">Open extra large modal</nord-button> </nord-button-group> <nord-modal id=\"modalSmall\" size=\"s\" aria-labelledby=\"smallHeader\"> <h2 id=\"smallHeader\" slot=\"header\">Small modal</h2> <form method=\"dialog\" id=\"smallForm\" class=\"n-reset\"> <p>Small modals are best used for confirmation dialogs.</p> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand form=\"smallForm\">Cancel</nord-button> <nord-button expand form=\"smallForm\" variant=\"primary\" autofocus>Save</nord-button> </nord-button-group> </nord-modal> <nord-modal id=\"modalMedium\" size=\"m\" aria-labelledby=\"mediumHeader\"> <h2 id=\"mediumHeader\" slot=\"header\">Medium modal</h2> <form method=\"dialog\" id=\"mediumForm\" class=\"n-reset\"> <p>Medium is the default size, and is suitable for most use cases.</p> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand form=\"mediumForm\">Cancel</nord-button> <nord-button expand form=\"mediumForm\" variant=\"primary\" autofocus>Save</nord-button> </nord-button-group> </nord-modal> <nord-modal id=\"modalLarge\" size=\"l\" aria-labelledby=\"largeHeader\"> <h2 id=\"largeHeader\" slot=\"header\">Large modal</h2> <form method=\"dialog\" id=\"largeForm\" class=\"n-reset n-typeset\"> <p>Large modals are best suited for complex forms which require lots of space.</p> <p>When using large modals, please ensure the layout continues to work in narrow viewports.</p> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand form=\"largeForm\">Cancel</nord-button> <nord-button expand form=\"largeForm\" variant=\"primary\" autofocus>Save</nord-button> </nord-button-group> </nord-modal> <nord-modal id=\"modalExtraLarge\" size=\"xl\" aria-labelledby=\"extraLargeHeader\"> <h2 id=\"extralargeHeader\" slot=\"header\">Extra large modal</h2> <form method=\"dialog\" id=\"extraLargeForm\" class=\"n-reset n-typeset\"> <p>Extra large modals are best suited for when you need to fill the full width of the viewport.</p> <p>When using extra large modals, please ensure the layout continues to work in narrow viewports.</p> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button expand form=\"extraLargeForm\">Cancel</nord-button> <nord-button expand form=\"extraLargeForm\" variant=\"primary\" autofocus>Save</nord-button> </nord-button-group> </nord-modal>` container.querySelector('#buttonSmall')!.addEventListener('click', () => (container.querySelector('#modalSmall') as any).showModal()) container.querySelector('#buttonMedium')!.addEventListener('click', () => (container.querySelector('#modalMedium') as any).showModal()) container.querySelector('#buttonLarge')!.addEventListener('click', () => (container.querySelector('#modalLarge') as any).showModal()) container.querySelector('#buttonExtraLarge')!.addEventListener('click', () => (container.querySelector('#modalExtraLarge') as any).showModal()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "TriggerEvents",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" id=\"openButton\">Open modal</nord-button> <nord-modal id=\"modal\" size=\"m\" open aria-labelledby=\"title\"> <h2 slot=\"header\" id=\"title\">Detecting Modal Close Triggers</h2> <nord-stack> <p class=\"n-reset\">Try different ways to close the modal:</p> <ul style=\"margin: 0; padding-left: 1.5rem\"> <li>Click outside (backdrop)</li> <li>Click the X button</li> <li>Press Escape key</li> <li>Click Cancel, Delete, or Save buttons</li> <li>Prevent close with checkbox, then Force Close</li> </ul> <p>Check the console to see the logged events. The original event that triggered the close is available on <code>event.trigger</code> in both <code>cancel</code> and <code>close</code> event handlers.</p> <nord-divider></nord-divider> <nord-checkbox id=\"preventClose\" label=\"Prevent next close action\"></nord-checkbox> <nord-checkbox id=\"preventXClose\" label=\"Prevent X button from closing\"></nord-checkbox> </nord-stack> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button id=\"cancelBtn\" expand>Cancel</nord-button> <nord-button id=\"deleteBtn\" expand variant=\"danger\">Delete</nord-button> <nord-button id=\"saveBtn\" expand variant=\"primary\" autofocus>Save</nord-button> <nord-button id=\"forceCloseBtn\" expand variant=\"secondary\">Force Close</nord-button> </nord-button-group> </nord-modal> <nord-toast-group id=\"toasts\"></nord-toast-group>` const modal = container.querySelector('#modal') as any const preventCheckbox = container.querySelector('#preventClose') as any const preventXCheckbox = container.querySelector('#preventXClose') as any const toasts = container.querySelector('#toasts') as any container.querySelector('#openButton')!.addEventListener('click', () => modal.showModal()) container.querySelector('#cancelBtn')!.addEventListener('click', (e: Event) => modal.close(undefined, e)) container.querySelector('#deleteBtn')!.addEventListener('click', (e: Event) => modal.close(undefined, e)) container.querySelector('#saveBtn')!.addEventListener('click', (e: Event) => modal.close(undefined, e)) container.querySelector('#forceCloseBtn')!.addEventListener('click', (e: Event) => modal.close(undefined, e)) toasts.addEventListener('dismiss', (e: Event) => (e.target as Element).remove()) function getTriggerSource(trigger: any) { if (!trigger) return 'Programmatic close' if (trigger.type === 'click' || trigger instanceof PointerEvent) { const target = trigger.target if (target?.classList?.contains('n-close') || target?.closest('.n-close')) return 'X button' if (target?.id === 'cancelBtn') return 'Cancel button' if (target?.id === 'deleteBtn') return 'Delete button' if (target?.id === 'saveBtn') return 'Save button' if (target?.id === 'forceCloseBtn') return 'Force Close button' if (target?.localName === 'nord-modal') return 'Click outside' } if (trigger instanceof KeyboardEvent && trigger.key === 'Escape') return 'Escape key' return 'Unknown' } modal.addEventListener('cancel', (e: any) => { const source = getTriggerSource(e.trigger) console.log(`Cancel event: ${source}`, { trigger: e.trigger }) const isXButton = e.trigger?.type === 'click' && (e.trigger.target?.classList?.contains('n-close') || e.trigger.target?.closest('.n-close')) if (preventCheckbox.checked || (preventXCheckbox.checked && isXButton)) { e.preventDefault() toasts.addToast('Close prevented!') console.log('↳ Close prevented!') } }) modal.addEventListener('close', (e: any) => { const source = getTriggerSource(e.trigger) console.log(`Close event: ${source}`, { trigger: e.trigger }) toasts.addToast(`Modal closed by: ${source}`) }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Terms",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button id=\"trigger\" variant=\"primary\">Open modal</nord-button> <nord-modal id=\"modal\" aria-labelledby=\"heading\" open class=\"n-typeset\" scrollable> <h2 slot=\"header\" id=\"heading\">Terms &amp; agreements</h2> <form method=\"dialog\" id=\"termsForm\"> <h3 class=\"n-typescale-l\" style=\"margin-block-start: 0\"> Lorem ipsum dolor, sit amet consectetur adipisicing elit </h3> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis tenetur amet temporibus nulla? Quisquam, quaerat sed! Assumenda itaque dolor ratione id voluptatum, excepturi eius voluptas iste facilis ut, quas minus. </p> <h3 class=\"n-typescale-l\">Lorem ipsum dolor sit</h3> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate. </p> <h3 class=\"n-typescale-l\">Lorem ipsum dolor sit amet consectetur</h3> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Aliquid repellat nam dolorum ab? Optio ex facere commodi aspernatur, laboriosam labore dicta totam ab repudiandae ullam quibusdam soluta odio, quis possimus. </p> <h3 class=\"n-typescale-l\">Consectetur adipiscing elit</h3> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt amet eaque corrupti alias sint tempora dolorum, incidunt fugit architecto veritatis, eum id nulla doloribus aut numquam earum natus vero repellat. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Ratione rem officia hic odit laboriosam sed temporibus amet reprehenderit quod. Natus sit quia veniam accusantium officiis minus, deleniti a ipsam quisquam. </p> <p> Lorem ipsum dolor sit amet consectetur, adipisicing elit. Fugit voluptas aperiam sit facilis excepturi hic ad iusto magni vel. Exercitationem iusto dolor placeat quisquam eaque cumque at incidunt, officia doloremque in earum nobis perspiciatis quo mollitia. Debitis eum fuga, excepturi quo dicta, deserunt ea quidem et, perspiciatis necessitatibus veritatis autem. </p> </form> <nord-button-group slot=\"footer\" variant=\"spaced\"> <nord-button form=\"termsForm\" expand value=\"cancel\">Cancel</nord-button> <nord-button form=\"termsForm\" expand variant=\"primary\" autofocus value=\"accept\">Accept terms</nord-button> </nord-button-group> </nord-modal>` container.querySelector('#trigger')!.addEventListener('click', () => (container.querySelector('#modal') as any).showModal()) return container }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomFooter",
          "declaration": {
            "name": "CustomFooter",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Destructive",
          "declaration": {
            "name": "Destructive",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "FeatureWithoutBody",
          "declaration": {
            "name": "FeatureWithoutBody",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "FeatureWithoutFooter",
          "declaration": {
            "name": "FeatureWithoutFooter",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Feature",
          "declaration": {
            "name": "Feature",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "FormComplex",
          "declaration": {
            "name": "FormComplex",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "FormMethodDialog",
          "declaration": {
            "name": "FormMethodDialog",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Form",
          "declaration": {
            "name": "Form",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ManagingFocus",
          "declaration": {
            "name": "ManagingFocus",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "MultipleModals",
          "declaration": {
            "name": "MultipleModals",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PreventingClose",
          "declaration": {
            "name": "PreventingClose",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Persistent",
          "declaration": {
            "name": "Persistent",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ScrollBehavior",
          "declaration": {
            "name": "ScrollBehavior",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TriggerEvents",
          "declaration": {
            "name": "TriggerEvents",
            "module": "src/modal/Modal.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Terms",
          "declaration": {
            "name": "Terms",
            "module": "src/modal/Modal.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/modal/Modal.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Event dispatched when a modal is about to be dismissed.\nThe `trigger` property contains the original event that caused the dismiss.",
          "name": "ModalCancelEvent",
          "members": [
            {
              "kind": "field",
              "name": "trigger",
              "type": {
                "text": "Event"
              }
            }
          ],
          "superclass": {
            "name": "NordEvent",
            "module": "/src/common/events.js"
          }
        },
        {
          "kind": "class",
          "description": "Event dispatched when a modal is closed.\nThe `trigger` property contains the original event that caused the close, if available.",
          "name": "ModalCloseEvent",
          "members": [
            {
              "kind": "field",
              "name": "trigger",
              "type": {
                "text": "Event | undefined"
              }
            }
          ],
          "superclass": {
            "name": "NordEvent",
            "module": "/src/common/events.js"
          }
        },
        {
          "kind": "class",
          "description": "Modal component is used to display content that temporarily blocks interactions\nwith the main view of an application. Modal should be used sparingly and\nonly when necessary.",
          "name": "Modal",
          "cssProperties": [
            {
              "description": "Controls the padding on the sides of the modal, using our [spacing tokens](/tokens/#space).",
              "name": "--n-modal-padding-inline",
              "default": "var(--n-space-m)"
            },
            {
              "description": "Controls the padding above and below the header of the modal, using our [spacing tokens](/tokens/#space).",
              "name": "--n-modal-padding-block",
              "default": "var(--n-space-m)"
            },
            {
              "description": "Controls the width of the modal.",
              "name": "--n-modal-max-inline-size",
              "default": "620px"
            }
          ],
          "slots": [
            {
              "description": "Default slot",
              "name": ""
            },
            {
              "description": "Slot which holds the header of the modal, positioned next to the close button.",
              "name": "header"
            },
            {
              "description": "Slot for full bleed content like an image.",
              "name": "feature"
            },
            {
              "description": "Slot which is typically used to hold call to action buttons, but can also be used to build custom footers.",
              "name": "footer"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "modal",
              "type": {
                "text": "HTMLDivElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "backdrop",
              "type": {
                "text": "HTMLDivElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "lastTrigger",
              "type": {
                "text": "Event | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "defaultSlot",
              "privacy": "private",
              "default": "new SlotController(this)"
            },
            {
              "kind": "field",
              "name": "headerSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'header')"
            },
            {
              "kind": "field",
              "name": "featureSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'feature')"
            },
            {
              "kind": "field",
              "name": "footerSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'footer')"
            },
            {
              "kind": "field",
              "name": "localize",
              "privacy": "private",
              "default": "new LocalizeController<'nord-modal'>(this)"
            },
            {
              "kind": "field",
              "name": "modalController",
              "privacy": "private",
              "default": "new ModalController(this, { isOpen: () => this.open, onDismiss: (e: Event) => this.handleDismiss(e), isLightDismissEnabled: () => !this.persistent, dialog: () => this.modal, backdrop: () => this.backdrop, close: (returnValue, trigger) => this.close(returnValue, trigger), })"
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the modal is open or not.",
              "attribute": "open",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l' | 'xl'"
              },
              "default": "'m'",
              "description": "Controls the max-width of the modal when open.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "returnValue",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The reason why the modal was closed. This typically indicates\nwhich button the user pressed to close the modal, though any value\ncan be supplied if the modal is programmatically closed."
            },
            {
              "kind": "field",
              "name": "scrollable",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "By default if a modal is too big for the browser window,\nthe entire modal will scroll. This setting changes that behavior\nso that the body of the modal scrolls instead, with the modal\nitself remaining fixed.",
              "attribute": "scrollable",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "persistent",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When true, the modal will not close when clicking the backdrop or pressing Escape,\nand the close button will be hidden. Only programmatic close or custom action buttons\ncan dismiss the modal.",
              "attribute": "persistent",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "showModal",
              "description": "Show the modal, automatically moving focus to the modal or a child\nelement with an `autofocus` attribute."
            },
            {
              "kind": "method",
              "name": "close",
              "parameters": [
                {
                  "name": "returnValue",
                  "optional": true,
                  "type": {
                    "text": "string"
                  },
                  "description": "An optional value to indicate why the modal was closed."
                },
                {
                  "name": "trigger",
                  "optional": true,
                  "type": {
                    "text": "Event"
                  },
                  "description": "An optional event that triggered the close."
                }
              ],
              "description": "Programmatically close the modal."
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically focus the modal."
            },
            {
              "kind": "method",
              "name": "handleOpenUpdated",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "prev",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleDismiss",
              "privacy": "private",
              "parameters": [
                {
                  "name": "trigger",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            }
          ],
          "events": [
            {
              "name": "closeTrigger",
              "type": {
                "text": "ModalCloseEvent"
              }
            },
            {
              "name": "trigger",
              "type": {
                "text": "ModalCancelEvent"
              }
            },
            {
              "type": {
                "text": "ModalCancelEvent"
              },
              "description": "Dispatched before the modal has closed when a user attempts to dismiss a modal. The event includes a trigger property containing the original event that caused the dismiss. Call preventDefault() on the event to prevent the modal closing.",
              "name": "cancel"
            },
            {
              "type": {
                "text": "ModalCloseEvent"
              },
              "description": "Dispatched when a modal is closed for any reason. The event includes an optional trigger property containing the original event that caused the close, if the modal was closed by a user action.",
              "name": "close"
            }
          ],
          "attributes": [
            {
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the modal is open or not.",
              "fieldName": "open"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l' | 'xl'"
              },
              "default": "'m'",
              "description": "Controls the max-width of the modal when open.",
              "fieldName": "size"
            },
            {
              "name": "scrollable",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "By default if a modal is too big for the browser window,\nthe entire modal will scroll. This setting changes that behavior\nso that the body of the modal scrolls instead, with the modal\nitself remaining fixed.",
              "fieldName": "scrollable"
            },
            {
              "name": "persistent",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When true, the modal will not close when clicking the backdrop or pressing Escape,\nand the close button will be hidden. Only programmatic close or custom action buttons\ncan dismiss the modal.",
              "fieldName": "persistent"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [
            {
              "name": "closeLabel",
              "description": "Accessible label for the close button."
            }
          ],
          "status": "ready",
          "category": "overlay",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use for confirmations and conditional changes.\n- Use when the user is required to take an action.\n- Use when you need to display content that temporarily blocks interactions with the main view of an application.\n- Use when you need to ask a confirmation from a user before proceeding.\n- Use for important warnings, as a way to prevent or correct critical errors.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for nonessential information that is not related to the current userflow.\n- Don’t use when the modal requires additional information for decision making that is unavailable in the modal itself.\n- Don’t open a modal window on top of another modal.\n\n</div>\n\n---\n\n## Content guidelines\n\nModal title should be clear, accurate and predictable. Always lead with a strong verb that encourages action. To provide enough context to user, use the {verb} + {noun} content formula:\n\n<div class=\"n-usage n-usage-do\">Edit patient</div>\n<div class=\"n-usage n-usage-dont\">Edit the patient called John Doe</div>\n<div class=\"n-usage n-usage-do\">Discard changes?</div>\n<div class=\"n-usage n-usage-dont\">Discard?</div>\n<div class=\"n-usage n-usage-do\">Delete patient?</div>\n<div class=\"n-usage n-usage-dont\">Are you sure you want to delete this patent?</div>\n\nWhen writing modal titles, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">New appointment</div>\n<div class=\"n-usage n-usage-dont\">New Appointment</div>\n\nAvoid unnecessary words and articles in modal titles, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending in punctuation:\n\n<div class=\"n-usage n-usage-do\">Edit patient</div>\n<div class=\"n-usage n-usage-dont\">Edit patient.</div>\n\n---\n\n## Focus behaviour\n\n- Use the `autofocus` attribute to set the initial focus to the first location that accepts user input.\n- If it is a transactional modal without form inputs, then `autofocus` should be set on the primary button in the modal footer. This is for efficiency since most users will simply dismiss the dialog as soon as they have read the message.\n- If the modal contains a form, use `autofocus` in the first form field.\n- Focus remains trapped inside the modal dialog until it is closed.\n- For more examples and best practices, please see [WAI-ARIA Authoring Practices Modal Dialog Example](https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/dialog-modal/dialog.html).\n",
          "examples": [],
          "dependencies": [
            "icon",
            "footer"
          ],
          "tagName": "nord-modal",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ModalCancelEvent",
          "declaration": {
            "name": "ModalCancelEvent",
            "module": "src/modal/Modal.ts"
          }
        },
        {
          "kind": "js",
          "name": "ModalCloseEvent",
          "declaration": {
            "name": "ModalCloseEvent",
            "module": "src/modal/Modal.ts"
          }
        },
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Modal",
            "module": "src/modal/Modal.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-modal",
          "declaration": {
            "name": "Modal",
            "module": "src/modal/Modal.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/modal/ModalController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ModalController",
          "members": [
            {
              "kind": "field",
              "name": "openModals",
              "privacy": "private",
              "static": true,
              "default": "new Stack<ModalController>()"
            },
            {
              "kind": "field",
              "name": "scrollBar",
              "type": {
                "text": "ScrollbarController"
              },
              "privacy": "private",
              "default": "new ScrollbarController(host)"
            },
            {
              "kind": "field",
              "name": "focusTrap",
              "type": {
                "text": "FocusTrapController"
              },
              "privacy": "private",
              "default": "new FocusTrapController(host)"
            },
            {
              "kind": "field",
              "name": "lightDismiss",
              "type": {
                "text": "LightDismissController"
              },
              "privacy": "private",
              "default": "new LightDismissController(host, { isOpen: options.isOpen, isDismissible: node => node !== options.dialog(), onDismiss: this.handleLightDismiss, })"
            },
            {
              "kind": "field",
              "name": "events",
              "type": {
                "text": "EventController"
              },
              "privacy": "private",
              "default": "new EventController(host)"
            },
            {
              "kind": "field",
              "name": "options",
              "type": {
                "text": "ModalControllerOptions"
              },
              "privacy": "private",
              "default": "options"
            },
            {
              "kind": "field",
              "name": "trigger",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "lastButton",
              "type": {
                "text": "HTMLButtonElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "hostConnected"
            },
            {
              "kind": "method",
              "name": "hostDisconnected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "block"
            },
            {
              "kind": "method",
              "name": "unblock"
            },
            {
              "kind": "field",
              "name": "trackLastButton",
              "privacy": "private",
              "description": "capture the last button clicked, so that we can polyfill `submitter` property in submit event"
            },
            {
              "kind": "field",
              "name": "polyfillSubmitter",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleTransitionEnd",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleLightDismiss",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleSubmit",
              "privacy": "private"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ModalController",
          "declaration": {
            "name": "ModalController",
            "module": "src/modal/ModalController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/modal/localization.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "localization",
          "type": {
            "text": "object"
          },
          "default": "{ closeLabel: 'Close dialog', }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "localization",
            "module": "src/modal/localization.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/nav-group/NavGroup.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Nav Group', component: 'nord-nav-group', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { heading: undefined, }, render: args => html` <nord-nav-group heading=${args.heading || ''} style=\"max-inline-size: 220px\"> <nord-nav-item href=\"#\" icon=\"navigation-search\">Search</nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-notifications\">Notifications</nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-tasks\">My tasks</nord-nav-item> </nord-nav-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-nav-group style=\"max-inline-size: 220px\"> <nord-nav-item href=\"#\" icon=\"navigation-search\">Search</nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-notifications\">Notifications</nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-tasks\">My tasks</nord-nav-item> </nord-nav-group> `, }"
        },
        {
          "kind": "variable",
          "name": "NestedNav",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-navigation> <nord-nav-group style=\"max-inline-size: 220px\"> <nord-nav-item href=\"#\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\" active>Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> </nord-nav-group> </nord-navigation> `, }"
        },
        {
          "kind": "variable",
          "name": "WithHeading",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-nav-group heading=\"Workspace\" style=\"max-inline-size: 220px\"> <nord-nav-item href=\"#\" active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-payments\">Payments</nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-reports\">Reports</nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/nav-group/NavGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/nav-group/NavGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/nav-group/NavGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "NestedNav",
          "declaration": {
            "name": "NestedNav",
            "module": "src/nav-group/NavGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithHeading",
          "declaration": {
            "name": "WithHeading",
            "module": "src/nav-group/NavGroup.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/nav-group/NavGroup.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Navigation group includes all the actions or items in a single\ngroup and is used for grouping items into related categories.",
          "name": "NavGroup",
          "slots": [
            {
              "description": "The default slot used for the nav items.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "heading",
              "type": {
                "text": "string | undefined"
              },
              "description": "Heading and accessible label for the nav group",
              "attribute": "heading",
              "reflects": true
            }
          ],
          "events": [
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched whenever a nav item's state changes between open and closed.",
              "name": "toggle"
            },
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched whenever a nav item has been marked as active",
              "name": "activate"
            }
          ],
          "attributes": [
            {
              "name": "heading",
              "type": {
                "text": "string | undefined"
              },
              "description": "Heading and accessible label for the nav group",
              "fieldName": "heading"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "navigation",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Group navigation items into navigation groups based on related categories.\n- Use group headings to clarify the category of a section.\n- Use icons for all top level navigation items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for grouping other types of content.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing navigation item labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in item labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending item labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse as few words as possible to describe each item label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoid all caps for item labels and group titles:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n",
          "examples": [],
          "dependencies": [
            "icon"
          ],
          "tagName": "nord-nav-group",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "NavGroup",
            "module": "src/nav-group/NavGroup.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-nav-group",
          "declaration": {
            "name": "NavGroup",
            "module": "src/nav-group/NavGroup.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/nav-item/NavItem.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Nav Item', component: 'nord-nav-item', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { active: false, icon: undefined, href: '#', badge: undefined, open: false, }, render: args => html` <nord-nav-group style=\"max-inline-size: 220px\"> <nord-nav-item ?active=${args.active} icon=${args.icon || ''} href=${args.href || ''} badge=${args.badge || ''} ?open=${args.open} > Dashboard </nord-nav-item> </nord-nav-group> `, }"
        },
        {
          "kind": "variable",
          "name": "ActiveState",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-nav-group style=\"max-inline-size: 220px\"> <nord-nav-item href=\"#\" active>Search</nord-nav-item> <nord-nav-item href=\"#\">Notifications</nord-nav-item> <nord-nav-item href=\"#\">My tasks</nord-nav-item> </nord-nav-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-nav-group style=\"max-inline-size: 220px\"> <nord-nav-item href=\"#\">Dashboard</nord-nav-item> </nord-nav-group> `, }"
        },
        {
          "kind": "variable",
          "name": "NestedNav",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-nav-group style=\"max-inline-size: 220px\"> <nord-nav-item href=\"#\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> </nord-nav-group> `, }"
        },
        {
          "kind": "variable",
          "name": "WithBadge",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-nav-group style=\"max-inline-size: 220px\"> <nord-nav-item href=\"#\" active icon=\"navigation-search\">Search</nord-nav-item> <nord-nav-item badge=\"12\" href=\"#\" icon=\"navigation-notifications\">Notifications</nord-nav-item> <nord-nav-item badge=\"27\" icon=\"navigation-tasks\"> My tasks <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> </nord-nav-group> `, }"
        },
        {
          "kind": "variable",
          "name": "WithIcons",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-nav-group style=\"max-inline-size: 220px\"> <nord-nav-item href=\"#\" icon=\"navigation-search\">Search</nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-notifications\">Notifications</nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-tasks\">My tasks</nord-nav-item> </nord-nav-group> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/nav-item/NavItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/nav-item/NavItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ActiveState",
          "declaration": {
            "name": "ActiveState",
            "module": "src/nav-item/NavItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/nav-item/NavItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "NestedNav",
          "declaration": {
            "name": "NestedNav",
            "module": "src/nav-item/NavItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithBadge",
          "declaration": {
            "name": "WithBadge",
            "module": "src/nav-item/NavItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithIcons",
          "declaration": {
            "name": "WithIcons",
            "module": "src/nav-item/NavItem.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/nav-item/NavItem.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Navigation item populates sidebar navigation with links.\nEvery item should be placed inside a navigation group.",
          "name": "NavItem",
          "slots": [
            {
              "description": "The default slot used for the nav item's text.",
              "name": ""
            },
            {
              "description": "Used for nesting navigation. When used the nav-item becomes a button to collapse the subnav, rather than a link.",
              "name": "subnav"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "subnavSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'subnav')"
            },
            {
              "kind": "field",
              "name": "direction",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Used for indicating the current page. This gives a prominent background to the nav item,\nand marks the item as the current page for assistive technology.",
              "attribute": "active",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "icon",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of an icon from Nordicons to display for the nav item.",
              "attribute": "icon",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "The url the nav item should link to.\nNote: this is not used if you have nested navigation using the \"subnav\" slot.",
              "attribute": "href",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "badge",
              "type": {
                "text": "string | undefined"
              },
              "description": "Allows you to add a notification badge with a number next to the nav item.",
              "attribute": "badge",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When the nav items contains a subnav, controls whether the section is expanded or not.\nNote: this is only used if you have nested navigation using the \"subnav\" slot.",
              "attribute": "open",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "renderLink",
              "privacy": "private",
              "parameters": [
                {
                  "name": "innards",
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderToggle",
              "privacy": "private",
              "parameters": [
                {
                  "name": "innards",
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderButton",
              "privacy": "private",
              "parameters": [
                {
                  "name": "innards",
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "toggleOpen",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleActiveChange",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "events": [
            {
              "name": "toggle",
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched whenever a nav item's state changes between open and closed."
            },
            {
              "name": "activate",
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched whenever a nav item has been marked as active"
            }
          ],
          "attributes": [
            {
              "name": "active",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Used for indicating the current page. This gives a prominent background to the nav item,\nand marks the item as the current page for assistive technology.",
              "fieldName": "active"
            },
            {
              "name": "icon",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of an icon from Nordicons to display for the nav item.",
              "fieldName": "icon"
            },
            {
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "The url the nav item should link to.\nNote: this is not used if you have nested navigation using the \"subnav\" slot.",
              "fieldName": "href"
            },
            {
              "name": "badge",
              "type": {
                "text": "string | undefined"
              },
              "description": "Allows you to add a notification badge with a number next to the nav item.",
              "fieldName": "badge"
            },
            {
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "When the nav items contains a subnav, controls whether the section is expanded or not.\nNote: this is only used if you have nested navigation using the \"subnav\" slot.",
              "fieldName": "open"
            }
          ],
          "mixins": [
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "navigation",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Group navigation items into navigation groups based on related categories.\n- Use group headings to clarify the category of a section.\n- Use icons for all top level navigation items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use navigation item outside of navigation group and navigation components.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing navigation item labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in item labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending item labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse as few words as possible to describe each item label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoid all caps for item labels and group titles:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-nav-item",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "NavItem",
            "module": "src/nav-item/NavItem.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-nav-item",
          "declaration": {
            "name": "NavItem",
            "module": "src/nav-item/NavItem.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/nav-toggle/NavToggle.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Nav Toggle', component: 'nord-nav-toggle', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: {}, render: () => html`<nord-nav-toggle></nord-nav-toggle>`, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-nav-toggle></nord-nav-toggle>`, }"
        },
        {
          "kind": "variable",
          "name": "WithTooltip",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-nav-toggle aria-describedby=\"toggle-tooltip\"></nord-nav-toggle> <nord-tooltip id=\"toggle-tooltip\" position=\"inline-end\"> Toggle navigation <nord-icon slot=\"shortcut\" name=\"keyboard-option\" label=\"Alt/Option key\"></nord-icon> <span slot=\"shortcut\">L</span> </nord-tooltip> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/nav-toggle/NavToggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/nav-toggle/NavToggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/nav-toggle/NavToggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithTooltip",
          "declaration": {
            "name": "WithTooltip",
            "module": "src/nav-toggle/NavToggle.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/nav-toggle/NavToggle.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Nav toggle is meant for hiding and showing the primary navigation.\nThis component is used internally in the Layout component, but can also be\nused separate to further customize the behavior.",
          "name": "NavToggle",
          "members": [
            {
              "kind": "field",
              "name": "direction",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "localization",
              "privacy": "private",
              "default": "new LocalizeController<'nord-nav-toggle'>(this)"
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [
            {
              "name": "label",
              "description": "Accessible label for the nav toggle button."
            }
          ],
          "status": "ready",
          "category": "action",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use a tooltip with the toggle that’s labelled as `Toggle navigation`.\n- We recommend setting a keyboard shortcut that toggles the navigation.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use as a generic button or toggle. Use the [Button component](/components/button/) instead.\n\n</div>\n",
          "examples": [],
          "dependencies": [
            "icon",
            "button",
            "visually-hidden"
          ],
          "tagName": "nord-nav-toggle",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "NavToggle",
            "module": "src/nav-toggle/NavToggle.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-nav-toggle",
          "declaration": {
            "name": "NavToggle",
            "module": "src/nav-toggle/NavToggle.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/nav-toggle/localization.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "localization",
          "type": {
            "text": "object"
          },
          "default": "{ label: 'Toggle navigation', }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "localization",
            "module": "src/nav-toggle/localization.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/navigation/Navigation.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Navigation', component: 'nord-navigation', tags: ['autodocs'], argTypes: { stickyFooter: { control: 'boolean' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { stickyFooter: false, }, render: args => html` <nord-navigation ?sticky-footer=${args.stickyFooter}><nord-nav-item icon=\"generic-canine\">Dashboard</nord-nav-item>\\n <nord-nav-item>Settings</nord-nav-item></nord-navigation> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-navigation style=\"max-inline-size: 250px\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\"> O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group heading=\"Workspace\"> <nord-nav-item active icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\">Payments</nord-nav-item> <nord-nav-item icon=\"navigation-reports\">Reports</nord-nav-item> <nord-nav-item icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> </nord-navigation> `, }"
        },
        {
          "kind": "variable",
          "name": "Complex",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-navigation style=\"max-inline-size: 250px\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group> <nord-nav-item aria-describedby=\"search\" icon=\"navigation-search\">Search</nord-nav-item> <nord-tooltip id=\"search\" position=\"inline-end\"> Search <nord-icon slot=\"shortcut\" name=\"keyboard-option\" label=\"Option key\"></nord-icon> <span slot=\"shortcut\">S</span> </nord-tooltip> <nord-nav-item icon=\"navigation-notifications\" aria-describedby=\"notifications\" badge=\"12\"> Notifications </nord-nav-item> <nord-tooltip id=\"notifications\" position=\"inline-end\"> Notifications <nord-icon slot=\"shortcut\" name=\"keyboard-option\" label=\"Option key\"></nord-icon> <span slot=\"shortcut\">N</span> </nord-tooltip> <nord-nav-item icon=\"navigation-tasks\" aria-describedby=\"tasks\">My tasks</nord-nav-item> <nord-tooltip id=\"tasks\" position=\"inline-end\"> My tasks <nord-icon slot=\"shortcut\" name=\"keyboard-option\" label=\"Option key\"></nord-icon> <span slot=\"shortcut\">M</span> </nord-tooltip> </nord-nav-group> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\" active>All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" aria-hidden=\"true\" name=\"Laura Williams\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation>` const navigation = container.querySelector('nord-navigation') // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true e.preventDefault() } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "InitiallyOpenNavItem",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-navigation style=\"max-inline-size: 250px\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" name=\"Bath Clinic\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group> <nord-nav-item aria-describedby=\"search\" icon=\"navigation-search\">Search</nord-nav-item> <nord-tooltip id=\"search\" position=\"inline-end\"> Search <nord-icon slot=\"shortcut\" name=\"keyboard-option\" label=\"Option key\"></nord-icon> <span slot=\"shortcut\">S</span> </nord-tooltip> <nord-nav-item icon=\"navigation-notifications\" aria-describedby=\"notifications\" badge=\"12\"> Notifications </nord-nav-item> <nord-tooltip id=\"notifications\" position=\"inline-end\"> Notifications <nord-icon slot=\"shortcut\" name=\"keyboard-option\" label=\"Option key\"></nord-icon> <span slot=\"shortcut\">N</span> </nord-tooltip> <nord-nav-item icon=\"navigation-tasks\" aria-describedby=\"tasks\">My tasks</nord-nav-item> <nord-tooltip id=\"tasks\" position=\"inline-end\"> My tasks <nord-icon slot=\"shortcut\" name=\"keyboard-option\" label=\"Option key\"></nord-icon> <span slot=\"shortcut\">M</span> </nord-tooltip> </nord-nav-group> <nord-nav-group heading=\"Workspace\"> <nord-nav-item href=\"#\" icon=\"navigation-dashboard\">Dashboard</nord-nav-item> <nord-nav-item icon=\"navigation-payments\"> Payments <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\" active>All transactions</nord-nav-item> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item icon=\"navigation-reports\" open> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Payments</nord-nav-item> <nord-nav-item href=\"#\">Disputes</nord-nav-item> <nord-nav-item href=\"#\">Payouts</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-dropdown expand slot=\"footer\"> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" aria-hidden=\"true\" name=\"Laura Williams\"></nord-avatar> Laura Williams </nord-button> <nord-dropdown-group> <nord-dropdown-item href=\"#\">View profile</nord-dropdown-item> <nord-dropdown-item>Settings</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Show keyboard shortcuts <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> <nord-dropdown-item>API</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> </nord-navigation>` const navigation = container.querySelector('nord-navigation') // for demo purposes, activate nav items on click. // in most cases you should instead integrate with your chosen router navigation.addEventListener('click', (e) => { if (e.target.matches('nord-nav-item') && e.target.href) { e.target.active = true e.preventDefault() } }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "StickyFooter",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-layout> <nord-navigation sticky-footer slot=\"nav\"> <nord-dropdown slot=\"header\" expand> <nord-button slot=\"toggle\" expand> <nord-avatar slot=\"start\" variant=\"square\">B</nord-avatar> Bath Clinic </nord-button> <nord-dropdown-group heading=\"laura.williams@nordhealth.com\"> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Bath Clinic\" size=\"s\" variant=\"square\">B</nord-avatar> Bath Clinic <nord-icon slot=\"end\" name=\"interface-checked\"></nord-icon> </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Ocean Beach Clinic\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-success)\" > O </nord-avatar> Ocean Beach Clinic </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Park Animal Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-highlight)\" > P </nord-avatar> Park Animal Hospital </nord-dropdown-item> <nord-dropdown-item> <nord-avatar slot=\"start\" name=\"Balboa Pet Hospital\" size=\"s\" variant=\"square\" style=\"--n-avatar-color: var(--n-color-status-danger)\" > B </nord-avatar> Balboa Pet Hospital </nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item>Add another clinic</nord-dropdown-item> <nord-dropdown-item>Customize style</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item>Sign out from all clinics</nord-dropdown-item> </nord-dropdown> <nord-nav-group> <nord-nav-item icon=\"medical-heart-rate\"> Patient care <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\" active>Dashboard</nord-nav-item> <nord-nav-item href=\"#\">Triage</nord-nav-item> <nord-nav-item href=\"#\">Laboratory</nord-nav-item> <nord-nav-item href=\"#\">Diagnostic imaging</nord-nav-item> <nord-nav-item href=\"#\">Patient referrals</nord-nav-item> <nord-nav-item href=\"#\">Health plans</nord-nav-item> <nord-nav-item href=\"#\">E-prescriptions</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item open icon=\"interface-calendar\"> Calendar <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Appointments</nord-nav-item> <nord-nav-item href=\"#\">Shifts</nord-nav-item> <nord-nav-item href=\"#\">Reminders</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item open icon=\"generic-shipping\"> Inventory <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Item bundles</nord-nav-item> <nord-nav-item href=\"#\">Item lists & groups</nord-nav-item> <nord-nav-item href=\"#\">Orders</nord-nav-item> <nord-nav-item href=\"#\">Stock</nord-nav-item> <nord-nav-item href=\"#\">Wholesalers</nord-nav-item> <nord-nav-item href=\"#\">Controlled medicines</nord-nav-item> <nord-nav-item href=\"#\">Item price change</nord-nav-item> <nord-nav-item href=\"#\">Stock level & items</nord-nav-item> <nord-nav-item href=\"#\">Item purchase</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item open icon=\"navigation-reports\"> Reports <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Performance</nord-nav-item> <nord-nav-item href=\"#\">Clinic statistics</nord-nav-item> <nord-nav-item href=\"#\">Business intelligence</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item open icon=\"generic-bank\"> Finances <nord-nav-group slot=\"subnav\"> <nord-nav-item href=\"#\">Invoices</nord-nav-item> <nord-nav-item href=\"#\">Estimates</nord-nav-item> <nord-nav-item href=\"#\">Insurance claims</nord-nav-item> <nord-nav-item href=\"#\">Commissions</nord-nav-item> <nord-nav-item href=\"#\">Discount invoices</nord-nav-item> </nord-nav-group> </nord-nav-item> <nord-nav-item href=\"#\" icon=\"navigation-settings\">Settings</nord-nav-item> </nord-nav-group> <nord-nav-item slot=\"footer\" href=\"#\" badge=\"4\" icon=\"interface-customer-support\">Get support</nord-nav-item> </nord-navigation> <nord-top-bar slot=\"top-bar\"> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> </nord-top-bar> <nord-header slot=\"header\"> <h1 class=\"n-typescale-l\">Dashboard</h1> <nord-button variant=\"primary\" slot=\"end\" size=\"s\"> <nord-icon slot=\"start\" name=\"interface-add-small\"></nord-icon> Create new </nord-button> <nord-tooltip id=\"export\" position=\"block-end\">Export data as Spreadsheet</nord-tooltip> </nord-header> <nord-stack gap=\"l\"> <nord-card> <h2 slot=\"header\">Description</h2> <nord-banner variant=\"info\"> This example has “sticky footer” enabled for the navigation sidebar.</nord-banner> </nord-card> </nord-stack> </nord-layout> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/navigation/Navigation.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/navigation/Navigation.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/navigation/Navigation.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Complex",
          "declaration": {
            "name": "Complex",
            "module": "src/navigation/Navigation.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InitiallyOpenNavItem",
          "declaration": {
            "name": "InitiallyOpenNavItem",
            "module": "src/navigation/Navigation.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "StickyFooter",
          "declaration": {
            "name": "StickyFooter",
            "module": "src/navigation/Navigation.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/navigation/Navigation.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Navigation is used to display the primary navigation in the sidebar\nof an application. Navigation includes a list of links that users\nuse to move between sections of the application.",
          "name": "Navigation",
          "cssProperties": [
            {
              "description": "Controls the background color of the navigation element.",
              "name": "--n-navigation-background-color",
              "default": "var(--n-color-nav-surface)"
            }
          ],
          "slots": [
            {
              "description": "The main section of the sidebar, for holding nav components.",
              "name": ""
            },
            {
              "description": "The top section of the sidebar.",
              "name": "header"
            },
            {
              "description": "The bottom section of the sidebar.",
              "name": "footer"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "headerSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'header')"
            },
            {
              "kind": "field",
              "name": "events",
              "privacy": "private",
              "default": "new EventController(this)"
            },
            {
              "kind": "field",
              "name": "footerObserver",
              "type": {
                "text": "MutationObserver | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "allowItemsToRemainOpen",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "stickyFooter",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the navigations's footer has sticky positioning.",
              "attribute": "sticky-footer",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "observeFooter",
              "privacy": "private",
              "description": "Observe the footer slot element for visibility changes.\nWatches style and class attributes on the footer element itself, and\nchildList on the host to detect footer being added/removed (e.g. v-if)."
            },
            {
              "kind": "field",
              "name": "isFooterVisible",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleActivate",
              "privacy": "private"
            }
          ],
          "events": [
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched whenever a nav item's state changes between open and closed.",
              "name": "toggle"
            },
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched whenever a nav item has been marked as active",
              "name": "activate"
            }
          ],
          "attributes": [
            {
              "name": "sticky-footer",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the navigations's footer has sticky positioning.",
              "fieldName": "stickyFooter"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "navigation",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use for primary navigation items that perform an action when clicked. Each action should navigate to a URL or trigger another action like a modal overlay.\n- Group navigation items into navigation groups based on related categories.\n- Use group headings to clarify the category of a section.\n- Use icons for all top level navigation items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place a `<nav>` element inside the navigation component, as it already contains one internally.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing navigation item labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in item labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending item labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse as few words as possible to describe each item label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoid all caps for item labels and group titles:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-navigation",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Navigation",
            "module": "src/navigation/Navigation.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-navigation",
          "declaration": {
            "name": "Navigation",
            "module": "src/navigation/Navigation.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/notification/Notification.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Notification', component: 'nord-notification', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { heading: 'Patient arrived', description: 'Ariel Salminen arrived to clinic with Pixie cat.', }, argTypes: { heading: { control: 'text' }, description: { control: 'text' }, }, render: (args) => { const container = document.createElement('div') container.innerHTML = `<nord-notification-group> <nord-notification> <h2>${args.heading}</h2> <p>${args.description}</p> <a href=\"#\">Start consultation</a> </nord-notification> </nord-notification-group>` const group = container.querySelector('nord-notification-group') group.addEventListener('dismiss', e => e.target.remove()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-notification-group> <nord-notification> <h2>Patient arrived</h2> <p>Ariel Salminen arrived to clinic with Pixie cat.</p> <a href=\"#\">Start consultation</a> </nord-notification> </nord-notification-group>` const group = container.querySelector('nord-notification-group') group.addEventListener('dismiss', e => e.target.remove()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "CustomIcon",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-notification-group> <nord-notification> <nord-icon slot=\"icon\" name=\"generic-pet-paw\"></nord-icon> <h2>Patient arrived</h2> <p>Ariel Salminen arrived to clinic with Pixie cat.</p> <a href=\"#\">Start consultation</a> </nord-notification> </nord-notification-group>` const group = container.querySelector('nord-notification-group') group.addEventListener('dismiss', e => e.target.remove()) return container }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/notification/Notification.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/notification/Notification.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/notification/Notification.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomIcon",
          "declaration": {
            "name": "CustomIcon",
            "module": "src/notification/Notification.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/notification/Notification.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Notifications provide important information that requires action or acknowledgement.\nA notification is displayed until the user dismisses it.",
          "name": "Notification",
          "slots": [
            {
              "description": "Default slot used for the notification text/message.",
              "name": ""
            },
            {
              "description": "Slot used for the notification icon.",
              "name": "icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "localize",
              "privacy": "private",
              "default": "new LocalizeController<'nord-notification'>(this)"
            },
            {
              "kind": "field",
              "name": "notificationRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "NotificationMixin",
                "module": "src/common/mixins/NotificationMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "dismissed",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "NotificationMixin",
                "module": "src/common/mixins/NotificationMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "dismiss",
              "description": "Programmatically dismiss the notification.\nThe returned promise resolves when notification's exit animation is complete.",
              "inheritedFrom": {
                "name": "NotificationMixin",
                "module": "src/common/mixins/NotificationMixin.ts"
              }
            }
          ],
          "events": [
            {
              "name": "dismiss",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired when the notification is dismissed, and its exit animation has completed. This event should be used to remove the dismissed notification from the DOM.",
              "inheritedFrom": {
                "name": "NotificationMixin",
                "module": "src/common/mixins/NotificationMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "NotificationMixin",
              "module": "/src/common/mixins/NotificationMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [
            {
              "name": "dismissLabel",
              "description": "Accessible label for the dismiss button."
            }
          ],
          "status": "ready",
          "category": "feedback",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use for short messages that describe the purpose of the notification.\n- Use for important updates that require user action/attention.\n- Provide a single call to action within the notification.\n- Use in combination with [Notification group](/components/notification-group) so that notifications get styled and positioned correctly.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for transient or unimportant messages. Consider using a [Toast](/components/toast) instead.\n- Don't remove a notification until a user has explicitly dismissed, or acted on the notification.\n- Don’t use for error messages unless absolutely necessary. Try to favor a [Banner](/components/banner/) for error messaging instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nNotification content should be clear, accurate and easy to understand:\n\n<div class=\"n-usage n-usage-do\">Ariel Salminen arrived to clinic with Pixie cat.</div>\n<div class=\"n-usage n-usage-dont\">Patient arrived</div>\n\nWhen writing the notification content, be concise. Keep content to 1 to 2 sentence:\n\n<div class=\"n-usage n-usage-do\">You’ve reached the limit of 30 users included in your plan. Upgrade to add more.</div>\n<div class=\"n-usage n-usage-dont\">You have reached the user limit. Your clinic can only have a maximum of 30 users. To add more users, remove users you no longer need or upgrade your plan to add more.</div>\n\nWhen writing the notification content, always write it in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Ariel Salminen arrived to clinic with Pixie cat.</div>\n<div class=\"n-usage n-usage-dont\">Ariel Salminen Arrived To Clinic With Pixie Cat.</div>\n\nAlways end in punctuation:\n\n<div class=\"n-usage n-usage-do\">Ariel Salminen arrived to clinic with Pixie cat.</div>\n<div class=\"n-usage n-usage-dont\">Ariel Salminen arrived to clinic with Pixie cat</div>\n\nAction link labels in notifications should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Click here</div>\n\nWhen writing action link labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Start Consultation</div>\n\nAvoid unnecessary words and articles in action link labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Add item</div>\n<div class=\"n-usage n-usage-dont\">Add an item</div>\n",
          "examples": [],
          "dependencies": [
            "stack",
            "icon"
          ],
          "tagName": "nord-notification",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Notification",
            "module": "src/notification/Notification.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-notification",
          "declaration": {
            "name": "Notification",
            "module": "src/notification/Notification.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/notification/localization.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "localization",
          "type": {
            "text": "object"
          },
          "default": "{ dismissLabel: 'Dismiss notification', }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "localization",
            "module": "src/notification/localization.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/notification-group/NotificationGroup.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Notification Group', component: 'nord-notification-group', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: {}, render: () => { const container = document.createElement('div') container.innerHTML = `<nord-notification-group> <nord-notification> <h2>Patient arrived</h2> <p>Ariel Salminen arrived to clinic with Pixie cat.</p> <a href=\"#\">Start consultation</a> </nord-notification> <nord-notification> <h2>New feature available</h2> <p>We've introduced a quick way to navigate between app views, actions, and more using a new command menu.</p> <a href=\"#\">Read more</a> </nord-notification> </nord-notification-group>` const group = container.querySelector('nord-notification-group') group.addEventListener('dismiss', e => e.target.remove()) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-notification-group> <nord-notification> <h2>Patient arrived</h2> <p>Ariel Salminen arrived to clinic with Pixie cat.</p> <a href=\"#\">Start consultation</a> </nord-notification> <nord-notification> <h2>New feature available</h2> <p>We’ve introduced a quick way to navigate between app views, actions, and more using a new command menu.</p> <a href=\"#\">Read more</a> </nord-notification> </nord-notification-group>` const group = container.querySelector('nord-notification-group') group.addEventListener('dismiss', e => e.target.remove()) return container }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/notification-group/NotificationGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/notification-group/NotificationGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/notification-group/NotificationGroup.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/notification-group/NotificationGroup.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Notification group is used to position and style a group of notifications.",
          "name": "NotificationGroup",
          "slots": [
            {
              "description": "Default slot in which to place notifications.",
              "name": ""
            }
          ],
          "members": [],
          "events": [
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired when a notification is dismissed, and its exit animation has completed. This event should be used to remove the dismissed notification from the DOM.",
              "name": "dismiss"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "feedback",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use in combination with [Notification](/components/notification/) so that notifications get styled and positioned correctly.\n- Add as close to the start of your main content area as possible.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for grouping anything other than notification components\n\n</div>\n\n---\n\n## Content guidelines\n\nNotification content should be clear, accurate and easy to understand:\n\n<div class=\"n-usage n-usage-do\">Ariel Salminen arrived to clinic with Pixie cat.</div>\n<div class=\"n-usage n-usage-dont\">Patient arrived</div>\n\nWhen writing the notification content, be concise. Keep content to 1 to 2 sentence:\n\n<div class=\"n-usage n-usage-do\">You’ve reached the limit of 30 users included in your plan. Upgrade to add more.</div>\n<div class=\"n-usage n-usage-dont\">You have reached the user limit. Your clinic can only have a maximum of 30 users. To add more users, remove users you no longer need or upgrade your plan to add more.</div>\n\nWhen writing the notification content, always write it in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Ariel Salminen arrived to clinic with Pixie cat.</div>\n<div class=\"n-usage n-usage-dont\">Ariel Salminen Arrived To Clinic With Pixie Cat.</div>\n\nAlways end in punctuation:\n\n<div class=\"n-usage n-usage-do\">Ariel Salminen arrived to clinic with Pixie cat.</div>\n<div class=\"n-usage n-usage-dont\">Ariel Salminen arrived to clinic with Pixie cat</div>\n\nAction link labels in notifications should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Click here</div>\n\nWhen writing action link labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Start Consultation</div>\n\nAvoid unnecessary words and articles in action link labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Add item</div>\n<div class=\"n-usage n-usage-dont\">Add an item</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-notification-group",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "NotificationGroup",
            "module": "src/notification-group/NotificationGroup.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-notification-group",
          "declaration": {
            "name": "NotificationGroup",
            "module": "src/notification-group/NotificationGroup.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/popout/Popout.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Popout', component: 'nord-popout', tags: ['autodocs'], argTypes: { id: { control: 'text' }, anchor: { control: 'text' }, alwaysFloating: { control: 'boolean' }, open: { control: 'boolean' }, align: { control: 'select', options: ['start', 'end'], }, position: { control: 'select', options: ['block-end', 'block-start', 'inline-start', 'inline-end', 'auto'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { alwaysFloating: false, open: false, align: 'start', position: 'block-end', }, render: args => html` <nord-stack style=\"margin-bottom: var(--n-space-xl)\" direction=\"horizontal\" justify-content=\"center\"> <nord-button variant=\"primary\" aria-controls=\"playground-popout\" aria-haspopup=\"true\">Toggle popout</nord-button> </nord-stack> <nord-popout id=\"playground-popout\" ?always-floating=${args.alwaysFloating} ?open=${args.open} align=${args.align} position=${args.position}> <div style=\"padding: var(--n-space-m)\">Popout content</div> </nord-popout> `, }"
        },
        {
          "kind": "variable",
          "name": "AlwaysFloating",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack style=\"margin-bottom: var(--n-space-xl)\" direction=\"horizontal\" justify-content=\"center\"> <nord-button variant=\"primary\" aria-controls=\"always-floating-popout\" aria-haspopup=\"true\">Toggle popout</nord-button> </nord-stack> <nord-popout id=\"always-floating-popout\" position=\"block-end\" always-floating> <div style=\"padding: var(--n-space-m)\">Popout content</div> </nord-popout> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack style=\"margin-bottom: var(--n-space-xl)\" direction=\"horizontal\" justify-content=\"center\"> <nord-button variant=\"primary\" aria-controls=\"basic-popout\" aria-haspopup=\"true\">Toggle popout</nord-button> </nord-stack> <nord-popout id=\"basic-popout\" position=\"block-end\"> <div style=\"padding: var(--n-space-m)\">Popout content</div> </nord-popout> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomPopoutFilter",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>.options { min-inline-size: 250px; max-inline-size: 375px; max-block-size: 460px; overflow-y: auto; } @media (max-width: 35.9375em) { .options { max-block-size: 70vh; max-inline-size: none; } } .multi-select-indicator { background-color: var(--n-color-active); color: var(--n-color-text); border-radius: var(--n-border-radius-s); border: 1px solid var(--n-color-border-hover); inline-size: var(--n-space-m); block-size: var(--n-space-m); display: grid; place-items: center; } .multi-select-indicator:has(nord-icon) { background-color: var(--n-color-accent); color: var(--n-color-text-on-accent); border: 1px solid var(--n-color-accent); } nord-dropdown-item:hover { --n-dropdown-item-background-color: var(--n-color-active); --n-dropdown-item-color: var(--n-color-text); }</style> <!-- Note: this example is purely visual, it does not include interactivity and proper accessibility --> <nord-button-group> <nord-button aria-controls=\"filter-popout\" size=\"s\"> <nord-icon name=\"interface-filter\" slot=\"start\"></nord-icon> Species is <span class=\"n-color-accent-text\">Amphibian +1</span> </nord-button> <nord-button size=\"s\" square> <nord-icon name=\"interface-close-small\" size=\"xxs\" label=\"Remove filter\"></nord-icon> </nord-button> </nord-button-group> <nord-popout id=\"filter-popout\"> <div class=\"options n-padding-s\"> <nord-dropdown-group heading=\"Species\"> <nord-dropdown-item> <nord-stack direction=\"horizontal\" gap=\"s\" align-items=\"center\"> <div class=\"multi-select-indicator\"> <nord-icon name=\"interface-checked-small\" size=\"xs\"></nord-icon> </div> <span>Amphibian</span> </nord-stack> </nord-dropdown-item> <nord-dropdown-item> <nord-stack direction=\"horizontal\" gap=\"s\" align-items=\"center\"> <div class=\"multi-select-indicator\"></div> <span>Canine</span> </nord-stack> </nord-dropdown-item> <nord-dropdown-item> <nord-stack direction=\"horizontal\" gap=\"s\" align-items=\"center\"> <div class=\"multi-select-indicator\"> <nord-icon name=\"interface-checked-small\" size=\"xs\"></nord-icon> </div> <span>Feline</span> </nord-stack> </nord-dropdown-item> <nord-dropdown-item> <nord-stack direction=\"horizontal\" gap=\"s\" align-items=\"center\"> <div class=\"multi-select-indicator\"></div> <span>Rodents</span> </nord-stack> </nord-dropdown-item> </nord-dropdown-group> </div> <div class=\"n-padding-s n-border-bs\"> <nord-dropdown-item>Clear selection</nord-dropdown-item> </div> </nord-popout> `, }"
        },
        {
          "kind": "variable",
          "name": "PositionAndAlignment",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>body { display: grid; grid-template-columns: repeat(auto-fit, minmax(30ch, max-content)); justify-content: center; gap: var(--n-space-m); }</style> <nord-button type=\"button\" aria-controls=\"pos-align-1\" aria-haspopup=\"true\" expand>Default</nord-button> <nord-popout id=\"pos-align-1\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-2\" aria-haspopup=\"true\" expand>align=\"start\"</nord-button> <nord-popout id=\"pos-align-2\" align=\"start\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-3\" aria-haspopup=\"true\" expand>align=\"end\"</nord-button> <nord-popout id=\"pos-align-3\" align=\"end\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-4\" aria-haspopup=\"true\" expand>position=\"block-end\"</nord-button> <nord-popout id=\"pos-align-4\" position=\"block-end\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-5\" aria-haspopup=\"true\" expand>position=\"block-start\"</nord-button> <nord-popout id=\"pos-align-5\" position=\"block-start\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-6\" aria-haspopup=\"true\" expand>position=\"inline-start\"</nord-button> <nord-popout id=\"pos-align-6\" position=\"inline-start\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-7\" aria-haspopup=\"true\" expand>position=\"inline-end\"</nord-button> <nord-popout id=\"pos-align-7\" position=\"inline-end\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-8\" aria-haspopup=\"true\" expand> align=\"start\" position=\"block-end\" </nord-button> <nord-popout id=\"pos-align-8\" align=\"start\" position=\"block-end\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-9\" aria-haspopup=\"true\" expand> align=\"start\" position=\"block-start\" </nord-button> <nord-popout id=\"pos-align-9\" align=\"start\" position=\"block-start\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-10\" aria-haspopup=\"true\" expand> align=\"start\" position=\"inline-start\" </nord-button> <nord-popout id=\"pos-align-10\" align=\"start\" position=\"inline-start\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-11\" aria-haspopup=\"true\" expand> align=\"start\" position=\"inline-end\" </nord-button> <nord-popout id=\"pos-align-11\" align=\"start\" position=\"inline-end\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-12\" aria-haspopup=\"true\" expand> align=\"end\" position=\"block-end\" </nord-button> <nord-popout id=\"pos-align-12\" align=\"end\" position=\"block-end\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-13\" aria-haspopup=\"true\" expand> align=\"end\" position=\"block-start\" </nord-button> <nord-popout id=\"pos-align-13\" align=\"end\" position=\"block-start\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-14\" aria-haspopup=\"true\" expand> align=\"end\" position=\"inline-start\" </nord-button> <nord-popout id=\"pos-align-14\" align=\"end\" position=\"inline-start\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-15\" aria-haspopup=\"true\" expand> align=\"end\" position=\"inline-end\" </nord-button> <nord-popout id=\"pos-align-15\" align=\"end\" position=\"inline-end\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-16\" aria-haspopup=\"true\" expand> position=\"auto\" </nord-button> <nord-popout id=\"pos-align-16\" position=\"auto\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-17\" aria-haspopup=\"true\" expand> align=\"start\" position=\"auto\" </nord-button> <nord-popout id=\"pos-align-17\" align=\"start\" position=\"auto\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> <nord-button type=\"button\" aria-controls=\"pos-align-18\" aria-haspopup=\"true\" expand> align=\"end\" position=\"auto\" </nord-button> <nord-popout id=\"pos-align-18\" align=\"end\" position=\"auto\"> <div style=\"padding: var(--n-space-m)\">Example content</div> </nord-popout> `, }"
        },
        {
          "kind": "variable",
          "name": "PositionAuto",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>.popout-content { padding: var(--n-space-m); max-inline-size: 200px; } @media (max-width: 35.9375em) { .popout-content { max-inline-size: none; } }</style> <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-top: calc(var(--n-space-xxl) * 2)\"> <nord-button variant=\"primary\" aria-controls=\"position-auto-popout\" aria-haspopup=\"true\">Toggle popout</nord-button> </nord-stack> <nord-popout id=\"position-auto-popout\" position=\"auto\"> <div class=\"popout-content\"> Long vertical popout content. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam id tincidunt mauris. Sed tincidunt odio ut mattis convallis. Sed condimentum nibh ut nisi ultrices, eget fringilla nisl ullamcorper. Vivamus pretium magna maximus mauris congue, et convallis felis vehicula. </div> </nord-popout> `, }"
        },
        {
          "kind": "variable",
          "name": "PositionLeft",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: var(--n-space-s)\"> <nord-button variant=\"primary\" aria-controls=\"position-left-popout\" aria-haspopup=\"true\">Toggle popout</nord-button> </nord-stack> <nord-popout id=\"position-left-popout\" position=\"inline-start\"> <div style=\"padding: var(--n-space-m)\">Popout content</div> </nord-popout> `, }"
        },
        {
          "kind": "variable",
          "name": "PositionRight",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"center\" style=\"margin-bottom: var(--n-space-s)\"> <nord-button variant=\"primary\" aria-controls=\"position-right-popout\" aria-haspopup=\"true\">Toggle popout</nord-button> </nord-stack> <nord-popout id=\"position-right-popout\" position=\"inline-end\"> <div style=\"padding: var(--n-space-m)\">Popout content</div> </nord-popout> `, }"
        },
        {
          "kind": "variable",
          "name": "PositionTop",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack style=\"margin-top: var(--n-space-xxl)\" direction=\"horizontal\" justify-content=\"center\"> <nord-button variant=\"primary\" aria-controls=\"position-top-popout\" aria-haspopup=\"true\">Toggle popout</nord-button> </nord-stack> <nord-popout id=\"position-top-popout\" position=\"block-start\"> <div style=\"padding: var(--n-space-m)\">Popout content</div> </nord-popout> `, }"
        },
        {
          "kind": "variable",
          "name": "TabsInPopout",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\" aria-controls=\"tabs-popout\" aria-haspopup=\"true\"> Export <nord-icon slot=\"end\" name=\"interface-download\"></nord-icon> </nord-button> <nord-popout id=\"tabs-popout\"> <nord-stack style=\"padding: var(--n-space-m) var(--n-space-m) var(--n-space-s)\" direction=\"horizontal\" align-items=\"center\" > <nord-stack direction=\"horizontal\" align-items=\"center\" gap=\"s\"> <h3 class=\"n-font-size-l n-font-weight-active\">Export data</h3> </nord-stack> <nord-icon name=\"interface-help\" aria-describedby=\"tabs-tooltip\" style=\"cursor: help\" label=\"Help\"></nord-icon> </nord-stack> <nord-tab-group label=\"Download options\" padding=\"m\"> <nord-tab slot=\"tab\">CSV</nord-tab> <nord-tab-panel> <nord-button class=\"export\"> Export data.csv <nord-icon slot=\"end\" name=\"interface-download\"></nord-icon> </nord-button> <p class=\"n-typescale-s n-margin-b-s\">Data will be downloaded directly to your device.</p> </nord-tab-panel> <nord-tab slot=\"tab\">Excel</nord-tab> <nord-tab-panel> <nord-button class=\"export\"> Export data.xlsx <nord-icon slot=\"end\" name=\"interface-download\"></nord-icon> </nord-button> <p class=\"n-typescale-s n-margin-b-s\">Data will be downloaded directly to your device.</p> </nord-tab-panel> </nord-tab-group> </nord-popout> <nord-tooltip id=\"tabs-tooltip\">Select format to export</nord-tooltip> <nord-toast-group></nord-toast-group>` const buttons = container.querySelectorAll('.export') const group = container.querySelector('nord-toast-group') group.addEventListener('dismiss', e => e.target.remove()) buttons.forEach((button) => { button.addEventListener('click', () => { if (button.loading) { return } group.addToast('Exporting data…', { autoDismiss: 3000 }) button.loading = true // Timeout exists for demo purposes to mimic server response time setTimeout(() => { button.loading = false group.addToast('Data exported', { autoDismiss: 3000 }) }, 2000) }) }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "WithAnchor",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" justify-content=\"space-between\"> <nord-button variant=\"primary\" aria-controls=\"anchor-popout\" aria-haspopup=\"true\">Toggle popout</nord-button> <p id=\"anchor-target\">Popout gets anchored here</p> </nord-stack> <nord-popout id=\"anchor-popout\" position=\"block-end\" anchor=\"anchor-target\"> <div style=\"padding: var(--n-space-m)\">Popout content</div> </nord-popout> `, }"
        },
        {
          "kind": "variable",
          "name": "InsideContainerQuery",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style> .container-query-wrapper { container-type: inline-size; border: 2px dashed var(--n-color-border); padding: var(--n-space-m); max-inline-size: 600px; margin-inline: auto; } .container-query-label { font-size: var(--n-font-size-s); color: var(--n-color-text-weaker); margin-block-end: var(--n-space-s); } </style> <p class=\"container-query-label\"> This wrapper has <code>container-type: inline-size</code> which creates a new containing block and can break <code>position: fixed</code> popout positioning. </p> <div class=\"container-query-wrapper\"> <nord-stack direction=\"horizontal\" justify-content=\"center\"> <nord-button variant=\"primary\" aria-controls=\"cq-popout\" aria-haspopup=\"true\">Toggle popout</nord-button> </nord-stack> <nord-popout id=\"cq-popout\" position=\"block-end\"> <div style=\"padding: var(--n-space-m)\">Popout content inside a container query</div> </nord-popout> </div> `, }"
        },
        {
          "kind": "variable",
          "name": "InsideNestedContainerQuery",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style> .outer-container { container-type: inline-size; border: 2px dashed var(--n-color-border); padding: var(--n-space-m); max-inline-size: 800px; margin-inline: auto; } .inner-container { container-type: inline-size; border: 2px dashed var(--n-color-status-warning); padding: var(--n-space-m); max-inline-size: 500px; margin-inline: auto; } .cq-label { font-size: var(--n-font-size-s); color: var(--n-color-text-weaker); margin-block-end: var(--n-space-s); } </style> <p class=\"cq-label\">Nested container queries — both wrappers have <code>container-type: inline-size</code>.</p> <div class=\"outer-container\"> <p class=\"cq-label\">Outer container</p> <div class=\"inner-container\"> <p class=\"cq-label\">Inner container</p> <nord-stack direction=\"horizontal\" justify-content=\"center\"> <nord-button variant=\"primary\" aria-controls=\"nested-cq-popout\" aria-haspopup=\"true\">Toggle popout</nord-button> </nord-stack> <nord-popout id=\"nested-cq-popout\" position=\"block-end\"> <div style=\"padding: var(--n-space-m)\">Popout inside nested containers</div> </nord-popout> </div> </div> `, }"
        },
        {
          "kind": "variable",
          "name": "WithCheckboxes",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-stack style=\"margin-bottom: var(--n-space-xl)\" direction=\"horizontal\" justify-content=\"center\"> <nord-button aria-controls=\"checkboxes-popout\" aria-haspopup=\"true\"> <nord-icon slot=\"start\" name=\"interface-filter\"></nord-icon> Filter by status <nord-icon slot=\"end\" name=\"interface-dropdown-small\"></nord-icon> </nord-button> </nord-stack> <nord-popout id=\"checkboxes-popout\" position=\"block-start\"> <nord-stack gap=\"m\" style=\"padding: var(--n-space-m); min-inline-size: 200px\"> <nord-checkbox name=\"pending\" label=\"Pending\"></nord-checkbox> <nord-checkbox name=\"successful\" label=\"Successful\"></nord-checkbox> <nord-checkbox name=\"failed\" label=\"Failed\"></nord-checkbox> <nord-checkbox name=\"blocked\" label=\"Blocked\"></nord-checkbox> </nord-stack> <nord-divider></nord-divider> <nord-stack gap=\"m\" style=\"padding: var(--n-space-s)\"> <nord-button expand variant=\"plain\" style=\"--n-button-padding-x: var(--n-space-s); --n-button-text-align: start\"> Clear selection </nord-button> </nord-stack> </nord-popout>` const checkboxes = container.querySelectorAll('nord-checkbox') const clearButton = container.querySelector('nord-popout nord-button') checkboxes.forEach((checkbox) => { checkbox.addEventListener('input', () => { checkbox.toggleAttribute('checked') }) }) clearButton.addEventListener('click', (event) => { checkboxes.forEach(checkbox => checkbox.removeAttribute('checked')) }) return container }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "AlwaysFloating",
          "declaration": {
            "name": "AlwaysFloating",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomPopoutFilter",
          "declaration": {
            "name": "CustomPopoutFilter",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PositionAndAlignment",
          "declaration": {
            "name": "PositionAndAlignment",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PositionAuto",
          "declaration": {
            "name": "PositionAuto",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PositionLeft",
          "declaration": {
            "name": "PositionLeft",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PositionRight",
          "declaration": {
            "name": "PositionRight",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "PositionTop",
          "declaration": {
            "name": "PositionTop",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TabsInPopout",
          "declaration": {
            "name": "TabsInPopout",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAnchor",
          "declaration": {
            "name": "WithAnchor",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InsideContainerQuery",
          "declaration": {
            "name": "InsideContainerQuery",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InsideNestedContainerQuery",
          "declaration": {
            "name": "InsideNestedContainerQuery",
            "module": "src/popout/Popout.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithCheckboxes",
          "declaration": {
            "name": "WithCheckboxes",
            "module": "src/popout/Popout.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/popout/Popout.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Popouts are small overlays that open on demand. They let users access additional content and actions without cluttering the page.",
          "name": "Popout",
          "slots": [
            {
              "description": "The popout content.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "targetElement",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "anchorElement",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "cleanupAutoUpdate",
              "type": {
                "text": "ReturnType<typeof autoUpdate> | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "popout",
              "type": {
                "text": "HTMLDivElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "scrollBar",
              "privacy": "private",
              "default": "new ScrollbarController(this)"
            },
            {
              "kind": "field",
              "name": "dismiss",
              "privacy": "private",
              "default": "new LightDismissController(this, { isOpen: () => this.open, onDismiss: e => this.hide(e.type !== 'click'), isDismissible: node => node !== this.popout && node !== this.targetElement, })",
              "description": "Handle dismissal of the popout, clicking outside the target button and popout."
            },
            {
              "kind": "field",
              "name": "events",
              "privacy": "private",
              "default": "new EventController(this)"
            },
            {
              "kind": "field",
              "name": "direction",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "computedPosition",
              "type": {
                "text": "Placement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "smallViewport",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "id",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The id for the active element to reference via aria-controls.",
              "attribute": "id",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "anchor",
              "type": {
                "text": "string | undefined"
              },
              "description": "Set an optional anchor element to align against, replacing the triggering element.",
              "attribute": "anchor",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "alwaysFloating",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Set to true to always display the popout as a floating overlay, even on smaller viewports.",
              "attribute": "always-floating",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "show",
              "return": {
                "type": {
                  "text": "Promise<TransitionEvent | void>"
                }
              },
              "description": "Show the popout.\nA promise that resolves to a `TransitionEvent` when the popout's show animation ends or is cancelled.\nIf the popout is already open, the promise resolves immediately with `undefined`."
            },
            {
              "kind": "method",
              "name": "hide",
              "return": {
                "type": {
                  "text": "Promise<TransitionEvent | void>"
                }
              },
              "parameters": [
                {
                  "name": "moveFocusToButton",
                  "default": "true",
                  "type": {
                    "text": "boolean"
                  },
                  "description": "prevent focus returning to the target button. Default is true."
                }
              ],
              "description": "Hide the popout.\nReturns a promise that resolves to a `TransitionEvent` when the popout's hide animation ends or is cancelled.\nIf the popout is already closed, the promise resolves immediately with `undefined`."
            },
            {
              "kind": "method",
              "name": "handleIdChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "initializeElements",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleOpenChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleAnchorChange",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "enableScroll",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "enterTopLayer",
              "privacy": "private",
              "description": "Place the element in the top layer via the Popover API so that\nposition: fixed works relative to the viewport regardless of\ncontainer queries or other containing block ancestors."
            },
            {
              "kind": "method",
              "name": "leaveTopLayer",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "updatePosition",
              "privacy": "private",
              "description": "Get the position of the element toggling the popout\nand position the popout underneath it, taking into account the optional placement."
            },
            {
              "kind": "field",
              "name": "toggleOpen",
              "privacy": "private",
              "description": "Toggle the popout open or closed using state.\nUpdating the position to underneath the target button before the popout is opened."
            },
            {
              "kind": "method",
              "name": "getToggle",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getAnchor",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleMediaQueryChange",
              "privacy": "private",
              "description": "Update the smallViewport flag to switch between \"sheet\" and \"floating\".\nautoUpdate is needed when a viewport gets larger and the popout is open."
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the component is open or not.",
              "attribute": "open",
              "reflects": true,
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "align",
              "type": {
                "text": "'start' | 'end'"
              },
              "default": "'start'",
              "description": "Set the alignment in relation to the toggle (or anchor) depending on the position.\n`start` will align it to the left of the toggle (or anchor).\n`end` will align it to the right of the toggle (or anchor).\nSetting the `position` to `inline-start` or `inline-end` will switch\n`start` and `end` to the top and bottom respectively.",
              "attribute": "align",
              "reflects": true,
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "position",
              "type": {
                "text": "'block-end' | 'block-start' | 'inline-start' | 'inline-end' | 'auto'"
              },
              "default": "'block-end'",
              "description": "Set the position in relation to the toggle (or anchor).\nOptions follow logical properties.\n`block-start` and `block-end` referring to top and bottom respectively,\n`inline-start` and `inline-end` referring to left and right respectively.\nYou can also set it to `auto` for automatic positioning depending on\nwhich side has the most space available.",
              "attribute": "position",
              "reflects": true,
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            }
          ],
          "events": [
            {
              "name": "open",
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched when the popout is opened."
            },
            {
              "name": "close",
              "type": {
                "text": "NordEvent"
              },
              "description": "Dispatched when the popout is closed."
            }
          ],
          "attributes": [
            {
              "name": "id",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The id for the active element to reference via aria-controls.",
              "fieldName": "id"
            },
            {
              "name": "anchor",
              "type": {
                "text": "string | undefined"
              },
              "description": "Set an optional anchor element to align against, replacing the triggering element.",
              "fieldName": "anchor"
            },
            {
              "name": "always-floating",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Set to true to always display the popout as a floating overlay, even on smaller viewports.",
              "fieldName": "alwaysFloating"
            },
            {
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the component is open or not.",
              "fieldName": "open",
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            },
            {
              "name": "align",
              "type": {
                "text": "'start' | 'end'"
              },
              "default": "'start'",
              "description": "Set the alignment in relation to the toggle (or anchor) depending on the position.\n`start` will align it to the left of the toggle (or anchor).\n`end` will align it to the right of the toggle (or anchor).\nSetting the `position` to `inline-start` or `inline-end` will switch\n`start` and `end` to the top and bottom respectively.",
              "fieldName": "align",
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            },
            {
              "name": "position",
              "type": {
                "text": "'block-end' | 'block-start' | 'inline-start' | 'inline-end' | 'auto'"
              },
              "default": "'block-end'",
              "description": "Set the position in relation to the toggle (or anchor).\nOptions follow logical properties.\n`block-start` and `block-end` referring to top and bottom respectively,\n`inline-start` and `inline-end` referring to left and right respectively.\nYou can also set it to `auto` for automatic positioning depending on\nwhich side has the most space available.",
              "fieldName": "position",
              "inheritedFrom": {
                "name": "FloatingMixin",
                "module": "src/common/mixins/FloatingComponentMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "FloatingMixin",
              "module": "/src/common/mixins/FloatingComponentMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "overlay",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Always position popout next to the button or other interface element that toggles it.\n- Use a popout to contain controls or information that doesn’t need to be shown immediately.\n- Use a popout to contain items that will most likely not fit into the current view.\n- Use a clearly labelled button to reveal the popout.\n- Use the appropriate `aria-haspopup` and `role` attributes for both the toggle button and containing items. Please refer to the [MDN documentation on both role values](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup#values) and [child role values](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup#associated_roles).\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don't hide information inside a popout that is imperative to using the current view.\n- Don't obscure other controls that are important with the popout.\n- Don't allow the popout to be obscured by other controls or the outer bounds of the current view.\n- Don't use `always-floating` property for long lists or complex content that benefits from full-screen focus.\n</div>\n\n---\n\n## Content guidelines\n\nIf a popout contains actions, they should be always written in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Create user</div>\n<div class=\"n-usage n-usage-dont\">Create User</div>\n\nPopout actions should always lead with a strong verb that encourages action. Use the `{verb}+{noun}` format except in the case of common actions like Save, Close or Cancel:\n\n<div class=\"n-usage n-usage-do\">Edit row</div>\n<div class=\"n-usage n-usage-dont\">Editing options</div>\n\nAvoid unnecessary words and articles in popout actions, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending popout actions in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nAvoid all caps for popout actions:\n\n<div class=\"n-usage n-usage-do\">Rename</div>\n<div class=\"n-usage n-usage-dont\">RENAME</div>\n\n---\n\n## Additional considerations\n\n- The popout component is a containing component, only providing a way to reveal and hide controls by using a single button.\n- Consider using the `alwaysFloating` property for compact interactions like simple filters or dropdown menus.\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-popout",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Popout",
            "module": "src/popout/Popout.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-popout",
          "declaration": {
            "name": "Popout",
            "module": "src/popout/Popout.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/progress/Progress.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Progress', component: 'nord-progress', tags: ['autodocs'], argTypes: { size: { control: 'select', options: ['xs', 's', 'm', 'l', 'xl', 'xxl'], }, color: { control: 'text' }, label: { control: 'text' }, progress: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { size: 'm', progress: '0', }, render: args => html` <nord-progress size=${args.size} color=${args.color || nothing} label=${args.label || nothing} progress=${args.progress || nothing}></nord-progress> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-progress progress=\"25\"></nord-progress>`, }"
        },
        {
          "kind": "variable",
          "name": "Color",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" align-items=\"center\"> <nord-progress progress=\"50\" color=\"success\"></nord-progress> <nord-progress progress=\"50\" color=\"warning\"></nord-progress> <nord-progress progress=\"50\" color=\"danger\"></nord-progress> <nord-progress progress=\"50\" color=\"highlight\"></nord-progress> <nord-progress progress=\"50\" color=\"info\"></nord-progress> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomColor",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" align-items=\"center\"> <nord-progress progress=\"50\" color=\"var(--n-color-accent)\"></nord-progress> <nord-progress progress=\"50\" color=\"#6366f1\"></nord-progress> <nord-progress progress=\"50\" color=\"rgb(236, 72, 153)\"></nord-progress> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Interactive",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-stack direction=\"horizontal\" align-items=\"center\" gap=\"m\"> <nord-progress id=\"demo-progress\" progress=\"0\" size=\"xl\" label=\"Demo progress\"></nord-progress> <nord-button id=\"start-btn\">Start</nord-button> <nord-button id=\"reset-btn\" variant=\"plain\">Reset</nord-button> </nord-stack>` const progress = container.querySelector(`#${'demo-progress'}`) const startBtn = container.querySelector(`#${'start-btn'}`) const resetBtn = container.querySelector(`#${'reset-btn'}`) let interval startBtn.addEventListener('click', () => { clearInterval(interval) interval = setInterval(() => { const current = Number.parseInt(progress.getAttribute('progress') || '0', 10) if (current >= 100) { clearInterval(interval) return } progress.setAttribute('progress', String(Math.min(100, current + 5))) }, 200) }) resetBtn.addEventListener('click', () => { clearInterval(interval) progress.setAttribute('progress', '0') }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "ProgressValues",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" align-items=\"center\"> <nord-progress progress=\"0\" size=\"l\"></nord-progress> <nord-progress progress=\"25\" size=\"l\"></nord-progress> <nord-progress progress=\"50\" size=\"l\"></nord-progress> <nord-progress progress=\"75\" size=\"l\"></nord-progress> <nord-progress progress=\"100\" size=\"l\"></nord-progress> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" align-items=\"center\"> <nord-progress progress=\"75\" size=\"xs\"></nord-progress> <nord-progress progress=\"75\" size=\"s\"></nord-progress> <nord-progress progress=\"75\" size=\"m\"></nord-progress> <nord-progress progress=\"75\" size=\"l\"></nord-progress> <nord-progress progress=\"75\" size=\"xl\"></nord-progress> <nord-progress progress=\"75\" size=\"xxl\"></nord-progress> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-progress progress=\"60\" size=\"l\" label=\"Upload progress: 60%\"></nord-progress> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/progress/Progress.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/progress/Progress.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/progress/Progress.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Color",
          "declaration": {
            "name": "Color",
            "module": "src/progress/Progress.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomColor",
          "declaration": {
            "name": "CustomColor",
            "module": "src/progress/Progress.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Interactive",
          "declaration": {
            "name": "Interactive",
            "module": "src/progress/Progress.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ProgressValues",
          "declaration": {
            "name": "ProgressValues",
            "module": "src/progress/Progress.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/progress/Progress.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithLabel",
          "declaration": {
            "name": "WithLabel",
            "module": "src/progress/Progress.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/progress/Progress.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Progress component is used to display a circular pie-chart style progress indicator.\nYou can customize the size and color of the progress indicator with the\nprovided properties.",
          "name": "Progress",
          "cssProperties": [
            {
              "description": "Controls the color of the progress indicator.",
              "name": "--n-progress-color",
              "default": "var(--n-color-accent)"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'"
              },
              "default": "'m'",
              "description": "The size of the progress indicator.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "color",
              "type": {
                "text": "string | undefined"
              },
              "description": "The color of the progress indicator.\nCan accept any valid CSS color value, including custom properties.\nTakes precedence over the `--n-progress-color` CSS custom property.",
              "attribute": "color",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "An accessible label for the progress indicator.\nIf no label is supplied, the component is hidden from assistive technology.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "progress",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "The progress percentage value.",
              "attribute": "progress",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "_animatedProgress",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0",
              "description": "Internal state for the animated progress value."
            },
            {
              "kind": "field",
              "name": "_animationId",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Animation frame ID for cleanup."
            },
            {
              "kind": "field",
              "name": "_targetProgress",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0",
              "description": "Target progress for animation."
            },
            {
              "kind": "field",
              "name": "_instanceId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "instanceCounter++",
              "description": "Unique ID for this component instance, used for SVG clipPath."
            },
            {
              "kind": "method",
              "name": "_animate",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_clampedProgress",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_isSemanticColor",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "description": "Check if the color is a semantic value handled by CSS.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_customColorStyle",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "private",
              "description": "Get the custom color style if not a semantic value.",
              "readonly": true
            }
          ],
          "attributes": [
            {
              "name": "size",
              "type": {
                "text": "'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'"
              },
              "default": "'m'",
              "description": "The size of the progress indicator.",
              "fieldName": "size"
            },
            {
              "name": "color",
              "type": {
                "text": "string | undefined"
              },
              "description": "The color of the progress indicator.\nCan accept any valid CSS color value, including custom properties.\nTakes precedence over the `--n-progress-color` CSS custom property.",
              "fieldName": "color"
            },
            {
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "An accessible label for the progress indicator.\nIf no label is supplied, the component is hidden from assistive technology.",
              "fieldName": "label"
            },
            {
              "name": "progress",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "The progress percentage value.",
              "fieldName": "progress"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "feedback",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to show the completion status of a task with a circular indicator.\n- Use when you can determine the percentage of the completed task at any time.\n- Use the label property to provide an accessible label for the progress indicator.\n- Use for compact spaces where a circular indicator is more appropriate than a linear progress bar.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don't\n\n- Don't use for indeterminate loading states, see [Spinner](/components/spinner/) instead.\n- Don't use when a linear representation of progress is more appropriate, see [Progress Bar](/components/progress-bar/) instead.\n\n</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-progress",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Progress",
            "module": "src/progress/Progress.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-progress",
          "declaration": {
            "name": "Progress",
            "module": "src/progress/Progress.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/progress-bar/ProgressBar.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Progress Bar', component: 'nord-progress-bar', tags: ['autodocs'], argTypes: { value: { control: 'text' }, max: { control: 'text' }, label: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { max: '100', label: 'Current progress', }, render: args => html` <nord-progress-bar value=${args.value || nothing} max=${args.max || nothing} label=${args.label || nothing}></nord-progress-bar> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-progress-bar value=\"40\"></nord-progress-bar>`, }"
        },
        {
          "kind": "variable",
          "name": "Indeterminate",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-progress-bar></nord-progress-bar>`, }"
        },
        {
          "kind": "variable",
          "name": "Interactive",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<style>nord-progress-bar[value=\"100\"] { --n-progress-color: var(--n-color-status-success); }</style> <nord-stack> <nord-progress-bar></nord-progress-bar> <nord-stack direction=\"horizontal\" gap=\"s\"> <nord-button size=\"s\" onclick=\"increase()\">Increase</nord-button> <nord-button size=\"s\" onclick=\"decrease()\">Decrease</nord-button> <nord-button size=\"s\" onclick=\"complete()\" variant=\"primary\">Complete</nord-button> <nord-button size=\"s\" onclick=\"reset()\" variant=\"danger\">Reset</nord-button> </nord-stack> </nord-stack>` const progress = container.querySelector('nord-progress-bar') function increase() { const { value = 0 } = progress progress.value = Math.min(value + 20, 100) } function decrease() { const { value = 0 } = progress progress.value = Math.max(value - 20, 0) if (value <= 20) { progress.value = undefined } } function complete() { progress.value = 100 progress.focus() } function reset() { progress.value = undefined } return container }, }"
        },
        {
          "kind": "variable",
          "name": "MaxProgress",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-progress-bar value=\"0.8\" max=\"1\"></nord-progress-bar>`, }"
        },
        {
          "kind": "variable",
          "name": "Styling",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <p>Default style:</p> <nord-progress-bar value=\"40\"></nord-progress-bar> <p>Custom border radius:</p> <nord-progress-bar style=\"--n-progress-border-radius: var(--n-border-radius-sharp)\" value=\"60\"></nord-progress-bar> <p>Custom color:</p> <nord-progress-bar style=\"--n-progress-color: var(--n-color-status-success)\" value=\"100\"></nord-progress-bar> <p>Custom size:</p> <nord-progress-bar style=\"--n-progress-size: var(--n-space-m)\" value=\"80\"></nord-progress-bar> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/progress-bar/ProgressBar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/progress-bar/ProgressBar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/progress-bar/ProgressBar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Indeterminate",
          "declaration": {
            "name": "Indeterminate",
            "module": "src/progress-bar/ProgressBar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Interactive",
          "declaration": {
            "name": "Interactive",
            "module": "src/progress-bar/ProgressBar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "MaxProgress",
          "declaration": {
            "name": "MaxProgress",
            "module": "src/progress-bar/ProgressBar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Styling",
          "declaration": {
            "name": "Styling",
            "module": "src/progress-bar/ProgressBar.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/progress-bar/ProgressBar.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Progress Bar is used to visually represent the completion\nof a task or process. It shows how much of the task has\nbeen completed and how much is still left.",
          "name": "ProgressBar",
          "cssProperties": [
            {
              "description": "Controls the thickness of the progress bar, using our [spacing tokens](/tokens/#space).",
              "name": "--n-progress-size",
              "default": "var(--n-space-s)"
            },
            {
              "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
              "name": "--n-progress-border-radius",
              "default": "var(--n-border-radius-s)"
            },
            {
              "description": "Controls the color of the progress bar, using [color tokens](/tokens/#color).",
              "name": "--n-progress-color",
              "default": "var(--n-color-accent)"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "number | undefined"
              },
              "description": "Specifies how much of the task has been completed. Must be a valid floating\npoint number between 0 and max, or between 0 and 100 if max is omitted. If\nthere is no value, the progress bar is indeterminate; this indicates that\nan activity is ongoing with no indication of how long it’s expected to take.",
              "attribute": "value",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "max",
              "type": {
                "text": "number"
              },
              "default": "100",
              "description": "Describes how much work the task indicated by the progress element requires.\nThe max attribute, if present, must have a value greater than 0 and be a\nvalid floating point number.",
              "attribute": "max",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "'Current progress'",
              "description": "Accessible label for the progress indicator. Visually hidden, but shown\nfor assistive technology.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "number | undefined"
              },
              "description": "Specifies how much of the task has been completed. Must be a valid floating\npoint number between 0 and max, or between 0 and 100 if max is omitted. If\nthere is no value, the progress bar is indeterminate; this indicates that\nan activity is ongoing with no indication of how long it’s expected to take.",
              "fieldName": "value"
            },
            {
              "name": "max",
              "type": {
                "text": "number"
              },
              "default": "100",
              "description": "Describes how much work the task indicated by the progress element requires.\nThe max attribute, if present, must have a value greater than 0 and be a\nvalid floating point number.",
              "fieldName": "max"
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "'Current progress'",
              "description": "Accessible label for the progress indicator. Visually hidden, but shown\nfor assistive technology.",
              "fieldName": "label"
            }
          ],
          "mixins": [
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "feedback",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to show the completion status of an ongoing task.\n- Use progress bar when you can determine the percentage of the completed task at any time.\n- Always provide an accessible label when using Progress Bar.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use in constrained spaces indicating indeterminate loading state, see [Spinner](/components/spinner/) instead.\n\n</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-progress-bar",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "ProgressBar",
            "module": "src/progress-bar/ProgressBar.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-progress-bar",
          "declaration": {
            "name": "ProgressBar",
            "module": "src/progress-bar/ProgressBar.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/qrcode/Qrcode.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Qrcode', component: 'nord-qrcode', tags: ['autodocs'], argTypes: { value: { control: 'text' }, label: { control: 'text' }, size: { control: 'text' }, color: { control: 'text' }, background: { control: 'text' }, correction: { control: 'select', options: ['L', 'M', 'Q', 'H'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { size: '128', color: 'var(--n-color-text)', background: 'var(--n-color-surface)', correction: 'H', }, render: args => html` <nord-qrcode value=${args.value || nothing} label=${args.label || nothing} size=${args.size || nothing} color=${args.color || nothing} background=${args.background || nothing} correction=${args.correction}></nord-qrcode> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-stack> <nord-qrcode value=\"https://nordhealth.design\"></nord-qrcode> <nord-input value=\"https://nordhealth.design\" label=\"Value\"></nord-input> </nord-stack>` const qrCode = container.querySelector('nord-qrcode') const input = container.querySelector('nord-input') input.addEventListener('input', () => (qrCode.value = input.value)) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Color",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-qrcode color=\"var(--n-color-accent)\" value=\"https://nordhealth.design\"></nord-qrcode> `, }"
        },
        {
          "kind": "variable",
          "name": "ErrorCorrection",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" wrap> <nord-qrcode correction=\"L\" value=\"https://nordhealth.design\"></nord-qrcode> <nord-qrcode correction=\"M\" value=\"https://nordhealth.design\"></nord-qrcode> <nord-qrcode correction=\"Q\" value=\"https://nordhealth.design\"></nord-qrcode> <nord-qrcode correction=\"H\" value=\"https://nordhealth.design\"></nord-qrcode> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Label",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-qrcode label=\"Link to our website\" value=\"https://nordhealth.design\"></nord-qrcode> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-qrcode size=\"256\" value=\"https://nordhealth.design\"></nord-qrcode>`, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/qrcode/Qrcode.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/qrcode/Qrcode.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/qrcode/Qrcode.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Color",
          "declaration": {
            "name": "Color",
            "module": "src/qrcode/Qrcode.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ErrorCorrection",
          "declaration": {
            "name": "ErrorCorrection",
            "module": "src/qrcode/Qrcode.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Label",
          "declaration": {
            "name": "Label",
            "module": "src/qrcode/Qrcode.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/qrcode/Qrcode.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/qrcode/Qrcode.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "QR Code component is used for providing information or links\nto users which they can quickly scan with their smartphone.",
          "name": "Qrcode",
          "members": [
            {
              "kind": "field",
              "name": "canvas",
              "type": {
                "text": "HTMLCanvasElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "computed",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the QR Code, most commonly an URL.",
              "attribute": "value",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label used by assistive technology. If unspecified, the value will\nbe used instead.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "number"
              },
              "default": "128",
              "description": "The size of the rendered QR Code in pixels.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "color",
              "type": {
                "text": "string"
              },
              "default": "'var(--n-color-text)'",
              "description": "The fill color of the QR Code.\nCan accept any valid CSS color value, including custom properties.",
              "attribute": "color",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "background",
              "type": {
                "text": "string"
              },
              "default": "'var(--n-color-surface)'",
              "description": "The background color of the QR Code.\nCan accept any valid CSS color value, including custom properties.",
              "attribute": "background",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "correction",
              "type": {
                "text": "'L' | 'M' | 'Q' | 'H'"
              },
              "default": "'H'",
              "description": "Error correction level makes the QR Code bigger and helps users to\nscan it without issues. L, M, Q and H values will use 7%, 15%, 25%\nand 30% of the QR code for error correction respectively.",
              "attribute": "correction",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "generate",
              "privacy": "private"
            }
          ],
          "attributes": [
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the QR Code, most commonly an URL.",
              "fieldName": "value"
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label used by assistive technology. If unspecified, the value will\nbe used instead.",
              "fieldName": "label"
            },
            {
              "name": "size",
              "type": {
                "text": "number"
              },
              "default": "128",
              "description": "The size of the rendered QR Code in pixels.",
              "fieldName": "size"
            },
            {
              "name": "color",
              "type": {
                "text": "string"
              },
              "default": "'var(--n-color-text)'",
              "description": "The fill color of the QR Code.\nCan accept any valid CSS color value, including custom properties.",
              "fieldName": "color"
            },
            {
              "name": "background",
              "type": {
                "text": "string"
              },
              "default": "'var(--n-color-surface)'",
              "description": "The background color of the QR Code.\nCan accept any valid CSS color value, including custom properties.",
              "fieldName": "background"
            },
            {
              "name": "correction",
              "type": {
                "text": "'L' | 'M' | 'Q' | 'H'"
              },
              "default": "'H'",
              "description": "Error correction level makes the QR Code bigger and helps users to\nscan it without issues. L, M, Q and H values will use 7%, 15%, 25%\nand 30% of the QR code for error correction respectively.",
              "fieldName": "correction"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "image",
          "displayName": "QR Code",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to allow people to access information on their smartphone without the need to type.\n- Always provide an alternative way to access the same information.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t hide important information behind a QR Code only.\n\n</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-qrcode",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Qrcode",
            "module": "src/qrcode/Qrcode.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-qrcode",
          "declaration": {
            "name": "Qrcode",
            "module": "src/qrcode/Qrcode.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/radio/Radio.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Radio', component: 'nord-radio', tags: ['autodocs'], argTypes: { checked: { control: 'boolean' }, size: { control: 'select', options: ['s', 'm', 'l'], }, label: { control: 'text' }, hint: { control: 'text' }, hideLabel: { control: 'boolean' }, placeholder: { control: 'text' }, error: { control: 'text' }, required: { control: 'boolean' }, hideRequired: { control: 'boolean' }, disabled: { control: 'boolean' }, name: { control: 'text' }, value: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { checked: false, size: 'm', hideLabel: false, required: false, hideRequired: false, disabled: false, }, render: args => html` <nord-radio ?checked=${args.checked} size=${args.size} label=${args.label || nothing} hint=${args.hint || nothing} ?hide-label=${args.hideLabel} placeholder=${args.placeholder || nothing} error=${args.error || nothing} ?required=${args.required} ?hide-required=${args.hideRequired} ?disabled=${args.disabled} name=${args.name || nothing} value=${args.value || nothing}></nord-radio> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Radios\"> <nord-stack direction=\"vertical\"> <nord-radio label=\"Option 1\" name=\"test\" value=\"1\"></nord-radio> <nord-radio label=\"Option 2\" name=\"test\" value=\"2\"></nord-radio> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "Checked",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Radios\"> <nord-stack direction=\"vertical\"> <nord-radio label=\"Option 1\" name=\"test\" value=\"1\" checked></nord-radio> <nord-radio label=\"Option 2\" name=\"test\" value=\"2\"></nord-radio> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Radios\"> <nord-stack direction=\"vertical\"> <nord-radio checked label=\"Checked\" disabled></nord-radio> <nord-radio label=\"Unchecked\" disabled></nord-radio> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "HiddenLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Radios\"> <nord-stack direction=\"vertical\"> <nord-radio label=\"Option 1\" name=\"test\" value=\"1\" hide-label></nord-radio> <nord-radio label=\"Option 2\" name=\"test\" value=\"2\"></nord-radio> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "Required",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset required label=\"Required\"> <nord-stack direction=\"vertical\"> <nord-radio label=\"Option 1\" name=\"test\" value=\"1\"></nord-radio> <nord-radio label=\"Option 2\" name=\"test\" value=\"2\"></nord-radio> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Radios\"> <nord-stack gap=\"s\" direction=\"vertical\"> <nord-radio size=\"s\" label=\"Option 1\" name=\"test\" value=\"1\" checked></nord-radio> <nord-radio size=\"m\" label=\"Option 2\" name=\"test\" value=\"2\"></nord-radio> <nord-radio size=\"l\" label=\"Option 3\" name=\"test\" value=\"3\"></nord-radio> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Radios\"> <nord-stack direction=\"vertical\"> <nord-radio label=\"Option 1\" name=\"test\" value=\"1\"> <div slot=\"hint\"> Hint is an accessible way to provide <strong>additional information</strong> that might help the user </div> </nord-radio> <nord-radio label=\"Option 2\" name=\"test\" value=\"2\"></nord-radio> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Radios\"> <nord-stack direction=\"vertical\"> <nord-radio name=\"test\" value=\"1\"> <label slot=\"label\">Label <span style=\"color: var(--n-color-status-success)\">with color</span></label> </nord-radio> <nord-radio label=\"Option 2\" name=\"test\" value=\"2\"></nord-radio> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Radios\"> <nord-stack direction=\"vertical\"> <nord-radio label=\"Option 1\" name=\"test\" value=\"1\" hint=\"Hint is an accessible way to provide additional information that might help the user\" ></nord-radio> <nord-radio label=\"Option 2\" name=\"test\" value=\"2\"></nord-radio> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "WithError",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Radios\"> <nord-stack direction=\"vertical\"> <nord-radio label=\"Option 1\" name=\"test\" value=\"1\" error=\"This field is required\"></nord-radio> <nord-radio label=\"Option 2\" name=\"test\" value=\"2\"></nord-radio> </nord-stack> </nord-fieldset> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Checked",
          "declaration": {
            "name": "Checked",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HiddenLabel",
          "declaration": {
            "name": "HiddenLabel",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexHint",
          "declaration": {
            "name": "WithAComplexHint",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexLabel",
          "declaration": {
            "name": "WithAComplexLabel",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAHint",
          "declaration": {
            "name": "WithAHint",
            "module": "src/radio/Radio.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithError",
          "declaration": {
            "name": "WithError",
            "module": "src/radio/Radio.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/radio/Radio.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Radio buttons are graphical user interface elements that allow user to choose only one option from\na predefined set of mutually exclusive options.",
          "name": "Radio",
          "cssProperties": [
            {
              "description": "Controls the text color of the label, using our [color tokens](/tokens/#color).",
              "name": "--n-label-color",
              "default": "var(--n-color-text)"
            }
          ],
          "slots": [
            {
              "description": "Use when a label requires more than plain text.",
              "name": "label"
            },
            {
              "description": "Optional slot that holds hint text for the input.",
              "name": "hint"
            },
            {
              "description": "Optional slot that holds error text for the input.",
              "name": "error"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'input'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'hint'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'error'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "privacy": "protected",
              "default": "new LightSlotController(this, { slotName: 'hint', render: () => (this.hint ? html`<div slot=\"hint-internal\" id=${this.hintId}>${this.hint}</div>` : nothing), syncLightDom: (element) => { element.id = this.hintId }, })",
              "description": "For accessibility reasons, we render some parts of the component to the light DOM.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "labelSlot",
              "privacy": "protected",
              "default": "new LightSlotController(this, { slotName: 'label', render: () => (this.label ? html`<label slot=\"label-internal\" for=${this.inputId}>${this.label}</label>` : nothing), syncLightDom: (element) => { if (!isLabel(element)) { console.warn(`NORD: Only <label> elements should be placed in radio's \"label\" slot`) } else { element.htmlFor = this.inputId } }, })",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorSlot",
              "privacy": "protected",
              "default": "new LightSlotController(this, { slotName: 'error', render: () => (this.error ? html`<div slot=\"error-internal\" id=${this.errorId}>${this.error}</div>` : nothing), syncLightDom: (element) => { element.id = this.hintId }, })",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "inputSlot",
              "privacy": "protected",
              "default": "new LightDomController(this, { render: () => html` <input slot=\"input\" @blur=${this.handleBlur} @focus=${this.handleFocus} ${ref(this.focusableRef)} class=\"n-input\" id=${this.inputId} type=\"radio\" name=${cond(this.name)} .value=${cond(this.value)} .checked=${this.checked} ?disabled=${this.disabled} ?required=${this.required} aria-describedby=${cond(this.getDescribedBy())} aria-invalid=${cond(this.getInvalid())} form=${cond(this._formId)} /> `, })"
            },
            {
              "kind": "field",
              "name": "formValue",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the checkbox is checked or not.",
              "attribute": "checked",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleCheckedChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "previousChecked",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "uncheckSiblings",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "handleBlur",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleFocus",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "attribute": "size",
              "reflects": true,
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formData",
              "privacy": "protected",
              "default": "new FormDataController(this, { value: () => this.formValue })",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "attribute": "label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "attribute": "hint",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "attribute": "hide-label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "attribute": "placeholder",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "attribute": "error",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "attribute": "required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "attribute": "hide-required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "additionalContent",
                  "optional": true,
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderError",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getInvalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasHint",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasError",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the checkbox is checked or not.",
              "fieldName": "checked"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "fieldName": "size",
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "fieldName": "label",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "fieldName": "hint",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-label",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "fieldName": "hideLabel",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "fieldName": "placeholder",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "fieldName": "error",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "fieldName": "required",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "fieldName": "hideRequired",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "SizeMixin",
              "module": "/src/common/mixins/SizeMixin.js"
            },
            {
              "name": "FormAssociatedMixin",
              "module": "/src/common/mixins/FormAssociatedMixin.js"
            },
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "form",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use a radio component when users can only select one option from a list.\n- Favor radios over a select component when there are a small number of options. This reduces the number of clicks a user has to make, increasing efficiency.\n- Radio buttons are grouped by their `name` attribute. Therefore, it is crucial that the same `name` is used for a group of radios.\n- Give each radio within a group a unique `value`.\n- Radios **must** be used in combination with a fieldset component.\n- In most cases, a stack component should be used to layout a group of radio buttons.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place interactive content (buttons, links etc) inside the label.\n- Don’t use when a user can select more than one option. In this case, use a checkbox instead.\n- Don’t use for “accepting terms of service” and similar functionality. Use a checkbox instead.\n- When you have more than 10 options to choose from. Consider using a select instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nRadio button labels should be clear, accurate and predictable. It should be possible for the user to understand what they are enabling or disabling:\n\n<div class=\"n-usage n-usage-do\">User settings</div>\n<div class=\"n-usage n-usage-dont\">Option 1</div>\n\nWhen writing radio button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid ending in punctuation if it’s a single sentence, word, or a fragment:\n\n<div class=\"n-usage n-usage-do\">Blue</div>\n<div class=\"n-usage n-usage-dont\">Blue.</div>\n\nDo not use commas or semicolons at the end of each line\n\n<div class=\"n-usage n-usage-do\">Patient</div>\n<div class=\"n-usage n-usage-dont\">Patient;</div>\n\n---\n\n## Additional considerations\n\n- Hint text can be used to offer further information or explanation for an option.\n- Once a radio has been selected, users cannot return to having no radios selected without refreshing their browser window. Therefore, you should include \"None of the above\" or \"I do not know\" if they are valid options.\n- In most cases, radio buttons should be stacked vertically. However, radio buttons can be stacked horizontally when there are only two options with short labels. An example might be a yes/no question.\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-radio",
          "customElement": true,
          "events": [
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the input.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the input's value is changed via user interaction.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Radio",
            "module": "src/radio/Radio.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-radio",
          "declaration": {
            "name": "Radio",
            "module": "src/radio/Radio.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/range/Range.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Range', component: 'nord-range', tags: ['autodocs'], argTypes: { min: { control: 'text' }, max: { control: 'text' }, step: { control: 'text' }, expand: { control: 'boolean' }, label: { control: 'text' }, hint: { control: 'text' }, hideLabel: { control: 'boolean' }, placeholder: { control: 'text' }, error: { control: 'text' }, required: { control: 'boolean' }, hideRequired: { control: 'boolean' }, autocomplete: { control: 'text' }, readonly: { control: 'boolean' }, disabled: { control: 'boolean' }, name: { control: 'text' }, value: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { min: '0', max: '10', step: '1', expand: false, hideLabel: false, required: false, hideRequired: false, autocomplete: 'off', readonly: false, disabled: false, }, render: args => html` <nord-range min=${args.min || nothing} max=${args.max || nothing} step=${args.step || nothing} ?expand=${args.expand} label=${args.label || nothing} hint=${args.hint || nothing} ?hide-label=${args.hideLabel} placeholder=${args.placeholder || nothing} error=${args.error || nothing} ?required=${args.required} ?hide-required=${args.hideRequired} autocomplete=${args.autocomplete || nothing} ?readonly=${args.readonly} ?disabled=${args.disabled} name=${args.name || nothing} value=${args.value || nothing}></nord-range> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-range label=\"Label\" value=\"7\" min=\"0\" max=\"10\"></nord-range>`, }"
        },
        {
          "kind": "variable",
          "name": "CustomThumbSize",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-range style=\"--n-range-thumb-size: 32px\" label=\"Label\" value=\"7\" min=\"0\" max=\"10\"></nord-range> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomTrackSize",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-range style=\"--n-range-track-size: 10px\" label=\"Label\" value=\"7\" min=\"0\" max=\"10\"></nord-range> `, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-range label=\"Disabled\" value=\"7\" min=\"0\" max=\"10\" disabled></nord-range>`, }"
        },
        {
          "kind": "variable",
          "name": "Expanded",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-range label=\"Expanded\" value=\"7\" min=\"0\" max=\"10\" expand></nord-range>`, }"
        },
        {
          "kind": "variable",
          "name": "HideLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-range label=\"Label\" value=\"7\" min=\"0\" max=\"10\" hide-label></nord-range>`, }"
        },
        {
          "kind": "variable",
          "name": "Readonly",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-range label=\"Readonly\" value=\"7\" min=\"0\" max=\"10\" readonly></nord-range>`, }"
        },
        {
          "kind": "variable",
          "name": "Required",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-range required label=\"Label\" value=\"7\" min=\"0\" max=\"10\"></nord-range>`, }"
        },
        {
          "kind": "variable",
          "name": "Responsive",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>@media (max-width: 768px) { :root { --n-range-thumb-size: 28px; } }</style> <nord-range label=\"Label\" value=\"7\" min=\"0\" max=\"10\"></nord-range> `, }"
        },
        {
          "kind": "variable",
          "name": "Steps",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-range label=\"Custom steps\" value=\"36.7\" step=\"0.1\" min=\"0\" max=\"100\"></nord-range> `, }"
        },
        {
          "kind": "variable",
          "name": "Unit",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-range label=\"Price ($)\" value=\"32\" min=\"0\" max=\"100\" step=\"0.01\"></nord-range> <nord-range label=\"Temperature (°C)\" value=\"37\" min=\"30\" max=\"42\" step=\"1\"></nord-range> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-range label=\"Label\" value=\"7\" min=\"0\" max=\"10\" expand> <div slot=\"hint\"> Hint is an accessible way to provide <strong>additional information</strong> that might help the user </div> </nord-range> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-range value=\"7\" min=\"0\" max=\"10\"> <div slot=\"label\">Label <span style=\"color: var(--n-color-status-success)\">with color</span></div> </nord-range> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-range value=\"7\" min=\"0\" max=\"10\" label=\"Label\" hint=\"Hint is an accessible way to provide additional information that might help the user\" expand ></nord-range> `, }"
        },
        {
          "kind": "variable",
          "name": "WithError",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-range min=\"0\" max=\"10\" label=\"Label\" error=\"This field is required\"></nord-range> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomThumbSize",
          "declaration": {
            "name": "CustomThumbSize",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomTrackSize",
          "declaration": {
            "name": "CustomTrackSize",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Expanded",
          "declaration": {
            "name": "Expanded",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HideLabel",
          "declaration": {
            "name": "HideLabel",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Readonly",
          "declaration": {
            "name": "Readonly",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Responsive",
          "declaration": {
            "name": "Responsive",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Steps",
          "declaration": {
            "name": "Steps",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Unit",
          "declaration": {
            "name": "Unit",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexHint",
          "declaration": {
            "name": "WithAComplexHint",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexLabel",
          "declaration": {
            "name": "WithAComplexLabel",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAHint",
          "declaration": {
            "name": "WithAHint",
            "module": "src/range/Range.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithError",
          "declaration": {
            "name": "WithError",
            "module": "src/range/Range.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/range/Range.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Range input lets user specify a numeric value using a slider which\nmust be no less than a given value, and no more than another given value.",
          "name": "Range",
          "cssProperties": [
            {
              "description": "Controls the size of the thumb.",
              "name": "--n-range-thumb-size",
              "default": "20px"
            },
            {
              "description": "Controls the color of the portion of the track that represents the current value.",
              "name": "--n-range-track-color-active",
              "default": "var(--n-color-accent)"
            },
            {
              "description": "Controls the color of the portion of the track that represents the remaining value.",
              "name": "--n-range-track-color-inactive",
              "default": "var(--n-color-border-strong)"
            },
            {
              "description": "Controls the height of the track.",
              "name": "--n-range-track-size",
              "default": "3px"
            }
          ],
          "slots": [
            {
              "description": "Use when a label requires more than plain text.",
              "name": "label"
            },
            {
              "description": "Optional slot that holds hint text for the input.",
              "name": "hint"
            },
            {
              "description": "Optional slot that holds error text for the input.",
              "name": "error"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "direction",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "min",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Minimum value for the range slider.",
              "attribute": "min",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "max",
              "type": {
                "text": "number"
              },
              "default": "10",
              "description": "Maximum value for the range slider.",
              "attribute": "max",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "step",
              "type": {
                "text": "number"
              },
              "default": "1",
              "description": "Step amount for the range slider.",
              "attribute": "step",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the input expands to fill the width of its container.",
              "attribute": "expand",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "labelSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'label')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'error')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'hint')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formData",
              "privacy": "protected",
              "default": "new FormDataController(this, { value: () => this.formValue })",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formValue",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'input'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'error'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'hint'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "attribute": "label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "attribute": "hint",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "attribute": "hide-label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "attribute": "placeholder",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "attribute": "error",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "attribute": "required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "attribute": "hide-required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "additionalContent",
                  "optional": true,
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderError",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getInvalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasHint",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasError",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              },
              "default": "'off'",
              "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
              "attribute": "autocomplete",
              "inheritedFrom": {
                "name": "AutocompleteMixin",
                "module": "src/common/mixins/AutocompleteMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
              "attribute": "readonly",
              "reflects": true,
              "inheritedFrom": {
                "name": "ReadonlyMixin",
                "module": "src/common/mixins/ReadonlyMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "events": [
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the input.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the input's value is changed via user interaction.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "min",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Minimum value for the range slider.",
              "fieldName": "min"
            },
            {
              "name": "max",
              "type": {
                "text": "number"
              },
              "default": "10",
              "description": "Maximum value for the range slider.",
              "fieldName": "max"
            },
            {
              "name": "step",
              "type": {
                "text": "number"
              },
              "default": "1",
              "description": "Step amount for the range slider.",
              "fieldName": "step"
            },
            {
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the input expands to fill the width of its container.",
              "fieldName": "expand"
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "fieldName": "label",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "fieldName": "hint",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-label",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "fieldName": "hideLabel",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "fieldName": "placeholder",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "fieldName": "error",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "fieldName": "required",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "fieldName": "hideRequired",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              },
              "default": "'off'",
              "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
              "fieldName": "autocomplete",
              "inheritedFrom": {
                "name": "AutocompleteMixin",
                "module": "src/common/mixins/AutocompleteMixin.ts"
              }
            },
            {
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
              "fieldName": "readonly",
              "inheritedFrom": {
                "name": "ReadonlyMixin",
                "module": "src/common/mixins/ReadonlyMixin.ts"
              }
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormAssociatedMixin",
              "module": "/src/common/mixins/FormAssociatedMixin.js"
            },
            {
              "name": "AutocompleteMixin",
              "module": "/src/common/mixins/AutocompleteMixin.js"
            },
            {
              "name": "ReadonlyMixin",
              "module": "/src/common/mixins/ReadonlyMixin.js"
            },
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "form",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to let user specify a numeric value using a slider.\n- Use when the accuracy of the numeric value entered isn’t important.\n- Always use with a label, even if that label is hidden.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use when the accuracy of the numeric value entered is important.\n- For entering arbitrary numeric values. Use [input component](/components/input/) instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nRange labels act as a title for the range input. Labels should typically be short and in noun form:\n\n<div class=\"n-usage n-usage-do\">Lightness percentage</div>\n<div class=\"n-usage n-usage-dont\">What is the lightness percentage?</div>\n\nWhen writing range labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Item price</div>\n<div class=\"n-usage n-usage-dont\">Item Price</div>\n\nDo not use colons in range label:\n\n<div class=\"n-usage n-usage-do\">Color depth</div>\n<div class=\"n-usage n-usage-dont\">Color depth:</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-range",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Range",
            "module": "src/range/Range.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-range",
          "declaration": {
            "name": "Range",
            "module": "src/range/Range.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/segmented-control/SegmentedControl.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Segmented Control', component: 'nord-segmented-control', tags: ['autodocs'], argTypes: { expand: { control: 'boolean' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { expand: false, }, render: args => html` <nord-segmented-control ?expand=${args.expand}><nord-segmented-control-item label=\"One\" value=\"1\" checked></nord-segmented-control-item>\\n <nord-segmented-control-item label=\"Two\" value=\"2\"></nord-segmented-control-item></nord-segmented-control> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-visually-hidden id=\"label\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"label\"> <nord-segmented-control-item size=\"s\" label=\"Day\" name=\"group\" value=\"day\" checked></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Week\" name=\"group\" value=\"week\"></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Month\" name=\"group\" value=\"month\"></nord-segmented-control-item> </nord-segmented-control> `, }"
        },
        {
          "kind": "variable",
          "name": "Checked",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-visually-hidden id=\"group-1\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-1\"> <nord-segmented-control-item size=\"s\" label=\"Day\" name=\"group-1\" value=\"day\" checked></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Week\" name=\"group-1\" value=\"week\"></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Month\" name=\"group-1\" value=\"month\"></nord-segmented-control-item> </nord-segmented-control> <nord-visually-hidden id=\"group-2\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-2\"> <nord-segmented-control-item size=\"s\" label=\"Day\" name=\"group-2\" value=\"day\"></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Week\" name=\"group-2\" value=\"week\" checked> </nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Month\" name=\"group-2\" value=\"month\"></nord-segmented-control-item> </nord-segmented-control> <nord-visually-hidden id=\"group-3\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-3\"> <nord-segmented-control-item size=\"s\" label=\"Day\" name=\"group-3\" value=\"day\"></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Week\" name=\"group-3\" value=\"week\"></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Month\" name=\"group-3\" value=\"month\" checked> </nord-segmented-control-item> </nord-segmented-control> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-visually-hidden id=\"label\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"label\"> <nord-segmented-control-item disabled size=\"s\" label=\"Day\" name=\"group\" value=\"day\" checked> </nord-segmented-control-item> <nord-segmented-control-item disabled size=\"s\" label=\"Week\" name=\"group\" value=\"week\"></nord-segmented-control-item> <nord-segmented-control-item disabled size=\"s\" label=\"Month\" name=\"group\" value=\"month\"></nord-segmented-control-item> </nord-segmented-control> `, }"
        },
        {
          "kind": "variable",
          "name": "FullWidthWithIcons",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-visually-hidden id=\"label\">View mode</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"label\" expand> <nord-segmented-control-item name=\"group-2\" value=\"list\" checked> <label slot=\"label\"> <nord-icon name=\"text-list\"></nord-icon> List </label> </nord-segmented-control-item> <nord-segmented-control-item name=\"group-2\" value=\"grid\"> <label slot=\"label\"> <nord-icon name=\"interface-grid\"></nord-icon> Grid </label> </nord-segmented-control-item> <nord-segmented-control-item name=\"group-2\" value=\"map\"> <label slot=\"label\"> <nord-icon name=\"generic-location\"></nord-icon> Map </label> </nord-segmented-control-item> </nord-segmented-control> `, }"
        },
        {
          "kind": "variable",
          "name": "FullWidth",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-visually-hidden id=\"label\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"label\" expand> <nord-segmented-control-item label=\"Day\" name=\"group\" value=\"day\" checked></nord-segmented-control-item> <nord-segmented-control-item label=\"Week\" name=\"group\" value=\"week\"></nord-segmented-control-item> <nord-segmented-control-item label=\"Month\" name=\"group\" value=\"month\"></nord-segmented-control-item> </nord-segmented-control> `, }"
        },
        {
          "kind": "variable",
          "name": "GroupedWithStack",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-select size=\"s\" name=\"page-size\" value=\"25\" label=\"Label\" hide-label> <option value=\"columns\">Columns</option> <option value=\"rows\">Rows</option> </nord-select> <nord-input size=\"s\" type=\"search\" placeholder=\"Search\" label=\"Search\" hide-label></nord-input> <nord-visually-hidden id=\"label\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"label\"> <nord-segmented-control-item size=\"s\" label=\"Day\" name=\"group\" value=\"day\" checked></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Week\" name=\"group\" value=\"week\"></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Month\" name=\"group\" value=\"month\"></nord-segmented-control-item> </nord-segmented-control> <nord-button variant=\"dashed\" size=\"s\"> <nord-icon slot=\"start\" name=\"interface-filter\"></nord-icon> Species </nord-button> <nord-divider direction=\"vertical\"></nord-divider> <nord-button variant=\"dashed\" size=\"s\"> <nord-icon slot=\"start\" name=\"interface-add\"></nord-icon> Add filter </nord-button> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "IconsOnly",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-visually-hidden id=\"group-1\">View mode</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-1\"> <nord-segmented-control-item size=\"s\" name=\"group-1\" value=\"list\" checked> <label slot=\"label\"> <nord-icon label=\"list\" name=\"text-list\"></nord-icon> </label> </nord-segmented-control-item> <nord-segmented-control-item size=\"s\" name=\"group-1\" value=\"grid\"> <label slot=\"label\"> <nord-icon label=\"grid\" name=\"interface-grid\"></nord-icon> </label> </nord-segmented-control-item> <nord-segmented-control-item size=\"s\" name=\"group-1\" value=\"map\"> <label slot=\"label\"> <nord-icon label=\"map\" name=\"generic-location\"></nord-icon> </label> </nord-segmented-control-item> </nord-segmented-control> <nord-visually-hidden id=\"group-2\">View mode</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-2\"> <nord-segmented-control-item name=\"group-2\" value=\"list\" checked> <label slot=\"label\"> <nord-icon label=\"list\" name=\"text-list\"></nord-icon> </label> </nord-segmented-control-item> <nord-segmented-control-item name=\"group-2\" value=\"grid\"> <label slot=\"label\"> <nord-icon label=\"grid\" name=\"interface-grid\"></nord-icon> </label> </nord-segmented-control-item> <nord-segmented-control-item name=\"group-2\" value=\"map\"> <label slot=\"label\"> <nord-icon label=\"map\" name=\"generic-location\"></nord-icon> </label> </nord-segmented-control-item> </nord-segmented-control> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "InsideForm",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <form action=\"#\"> <nord-stack direction=\"horizontal\" gap=\"s\"> <nord-visually-hidden id=\"label\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"label\"> <nord-segmented-control-item size=\"s\" label=\"Author\" name=\"group\" value=\"author\" checked> </nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Label\" name=\"group\" value=\"label\"></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Assignee\" name=\"group\" value=\"assignee\"> </nord-segmented-control-item> </nord-segmented-control> <nord-button size=\"s\" variant=\"primary\">Submit</nord-button> </nord-stack> </form> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-visually-hidden id=\"group-1\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-1\"> <nord-segmented-control-item size=\"s\" label=\"Day\" name=\"group-1\" value=\"1\" checked></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Week\" name=\"group-1\" value=\"2\"></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Month\" name=\"group-1\" value=\"3\"></nord-segmented-control-item> </nord-segmented-control> <nord-visually-hidden id=\"group-2\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-2\"> <nord-segmented-control-item label=\"Day\" name=\"group-2\" value=\"day\" checked></nord-segmented-control-item> <nord-segmented-control-item label=\"Week\" name=\"group-2\" value=\"week\"></nord-segmented-control-item> <nord-segmented-control-item label=\"Month\" name=\"group-2\" value=\"month\"></nord-segmented-control-item> </nord-segmented-control> <nord-visually-hidden id=\"group-3\">Time frame</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-3\"> <nord-segmented-control-item size=\"l\" label=\"Day\" name=\"group-3\" value=\"day\" checked></nord-segmented-control-item> <nord-segmented-control-item size=\"l\" label=\"Week\" name=\"group-3\" value=\"week\"></nord-segmented-control-item> <nord-segmented-control-item size=\"l\" label=\"Month\" name=\"group-3\" value=\"month\"></nord-segmented-control-item> </nord-segmented-control> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithIcons",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-visually-hidden id=\"group-1\">View mode</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-1\"> <nord-segmented-control-item size=\"s\" name=\"group-1\" value=\"list\" checked> <label slot=\"label\"> <nord-icon name=\"text-list\"></nord-icon> List </label> </nord-segmented-control-item> <nord-segmented-control-item size=\"s\" name=\"group-1\" value=\"grid\"> <label slot=\"label\"> <nord-icon name=\"interface-grid\"></nord-icon> Grid </label> </nord-segmented-control-item> <nord-segmented-control-item size=\"s\" name=\"group-1\" value=\"map\"> <label slot=\"label\"> <nord-icon name=\"generic-location\"></nord-icon> Map </label> </nord-segmented-control-item> </nord-segmented-control> <nord-visually-hidden id=\"group-2\">View mode</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-2\"> <nord-segmented-control-item name=\"group-2\" value=\"list\" checked> <label slot=\"label\"> <nord-icon name=\"text-list\"></nord-icon> List </label> </nord-segmented-control-item> <nord-segmented-control-item name=\"group-2\" value=\"grid\"> <label slot=\"label\"> <nord-icon name=\"interface-grid\"></nord-icon> Grid </label> </nord-segmented-control-item> <nord-segmented-control-item name=\"group-2\" value=\"map\"> <label slot=\"label\"> <nord-icon name=\"generic-location\"></nord-icon> Map </label> </nord-segmented-control-item> </nord-segmented-control> <nord-visually-hidden id=\"group-3\">View mode</nord-visually-hidden> <nord-segmented-control aria-labelledby=\"group-3\"> <nord-segmented-control-item size=\"l\" name=\"group-3\" value=\"list\" checked> <label slot=\"label\"> <nord-icon name=\"text-list\"></nord-icon> List </label> </nord-segmented-control-item> <nord-segmented-control-item size=\"l\" name=\"group-3\" value=\"grid\"> <label slot=\"label\"> <nord-icon name=\"interface-grid\"></nord-icon> Grid </label> </nord-segmented-control-item> <nord-segmented-control-item size=\"l\" name=\"group-3\" value=\"map\"> <label slot=\"label\"> <nord-icon name=\"generic-location\"></nord-icon> Map </label> </nord-segmented-control-item> </nord-segmented-control> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"horizontal\" align-items=\"center\" gap=\"s\"> <label id=\"label\" class=\"n-font-size-s\">Filter by</label> <nord-segmented-control aria-labelledby=\"label\"> <nord-segmented-control-item size=\"s\" label=\"Author\" name=\"group\" value=\"author\" checked> </nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Label\" name=\"group\" value=\"label\"></nord-segmented-control-item> <nord-segmented-control-item size=\"s\" label=\"Assignee\" name=\"group\" value=\"assignee\"></nord-segmented-control-item> </nord-segmented-control> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Checked",
          "declaration": {
            "name": "Checked",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "FullWidthWithIcons",
          "declaration": {
            "name": "FullWidthWithIcons",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "FullWidth",
          "declaration": {
            "name": "FullWidth",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "GroupedWithStack",
          "declaration": {
            "name": "GroupedWithStack",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "IconsOnly",
          "declaration": {
            "name": "IconsOnly",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InsideForm",
          "declaration": {
            "name": "InsideForm",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithIcons",
          "declaration": {
            "name": "WithIcons",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithLabel",
          "declaration": {
            "name": "WithLabel",
            "module": "src/segmented-control/SegmentedControl.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/segmented-control/SegmentedControl.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Segmented control is used to pick one choice from a set of\nclosely related choices, and immediately apply that selection.",
          "name": "SegmentedControl",
          "slots": [
            {
              "description": "Default slot.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "defaultSlot",
              "privacy": "private",
              "default": "new SlotController(this)"
            },
            {
              "kind": "field",
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the segmented control expands to fill the width of its container.",
              "attribute": "expand",
              "reflects": true
            }
          ],
          "events": [
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever a segmented control item has been checked.",
              "name": "change"
            }
          ],
          "attributes": [
            {
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the segmented control expands to fill the width of its container.",
              "fieldName": "expand"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "new",
          "category": "action",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use segmented control to allow users to pick one choice from a set of closely related choices, and immediately apply that selection.\n- Favor segmented control or [radio component](/components/radio/) over a select component when there are a small number of options. This reduces the number of clicks a user has to make, increasing efficiency.\n- Segmented control items are grouped by their `name` attribute. Therefore, it is crucial that the same `name` is used for a group of segmented control items.\n- Give each segmented control item within a group a unique `value`.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place interactive content (buttons, links etc) inside the label.\n- Don’t use when a user can select more than one option. In this case, use a [checkbox](/components/checkbox/) or [selectable tag](/components/tag/?example=selectable) instead.\n- Don’t use for “accepting terms of service” and similar functionality. Use a [checkbox](/components/checkbox/) instead.\n- When you have more than 5 options to choose from. Consider using a [select](/components/select/) instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nSegmented control labels should be clear, accurate and predictable. It should be possible for the user to understand what they are enabling or disabling:\n\n<div class=\"n-usage n-usage-do\">User settings</div>\n<div class=\"n-usage n-usage-dont\">Option 1</div>\n\nWhen writing segmented control labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid ending in punctuation if it’s a single sentence, word, or a fragment:\n\n<div class=\"n-usage n-usage-do\">Blue</div>\n<div class=\"n-usage n-usage-dont\">Blue.</div>\n\nDo not use commas or semicolons at the end of each line\n\n<div class=\"n-usage n-usage-do\">Patient</div>\n<div class=\"n-usage n-usage-dont\">Patient;</div>\n\n---\n\n## Additional considerations\n\n- Once a segmented control item has been selected, users cannot return to having no items selected without refreshing their browser window. Therefore, you should always make sure one of the items is pre-selected.\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-segmented-control",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "SegmentedControl",
            "module": "src/segmented-control/SegmentedControl.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-segmented-control",
          "declaration": {
            "name": "SegmentedControl",
            "module": "src/segmented-control/SegmentedControl.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/segmented-control-item/SegmentedControlItem.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Segmented Control Item', component: 'nord-segmented-control-item', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { label: 'Active', name: 'group', value: 'active', checked: true, size: 'm', disabled: false, }, render: args => html` <nord-stack> <nord-segmented-control-item label=${args.label} name=${args.name} value=${args.value} ?checked=${args.checked} size=${args.size} ?disabled=${args.disabled} ></nord-segmented-control-item> <nord-segmented-control-item label=\"Default\" name=\"group\" value=\"default\"></nord-segmented-control-item> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-segmented-control-item label=\"Active\" name=\"group\" value=\"active\" checked></nord-segmented-control-item> <nord-segmented-control-item label=\"Default\" name=\"group\" value=\"default\"></nord-segmented-control-item> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "IconsOnly",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-segmented-control-item name=\"group\" value=\"list\" checked> <label slot=\"label\"> <nord-icon label=\"list\" name=\"text-list\"></nord-icon> </label> </nord-segmented-control-item> <nord-segmented-control-item name=\"group\" value=\"grid\"> <label slot=\"label\"> <nord-icon label=\"grid\" name=\"interface-grid\"></nord-icon> </label> </nord-segmented-control-item> <nord-segmented-control-item name=\"group\" value=\"map\"> <label slot=\"label\"> <nord-icon label=\"map\" name=\"generic-location\"></nord-icon> </label> </nord-segmented-control-item> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-segmented-control-item size=\"s\" label=\"Small\" name=\"group\" value=\"1\" checked></nord-segmented-control-item> <nord-segmented-control-item size=\"m\" label=\"Medium\" name=\"group\" value=\"2\"></nord-segmented-control-item> <nord-segmented-control-item size=\"l\" label=\"Large\" name=\"group\" value=\"3\"></nord-segmented-control-item> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithIcons",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-segmented-control-item name=\"group\" value=\"list\" checked> <label slot=\"label\"> <nord-icon name=\"text-list\"></nord-icon> List </label> </nord-segmented-control-item> <nord-segmented-control-item name=\"group\" value=\"grid\"> <label slot=\"label\"> <nord-icon name=\"interface-grid\"></nord-icon> Grid </label> </nord-segmented-control-item> <nord-segmented-control-item name=\"group\" value=\"map\"> <label slot=\"label\"> <nord-icon name=\"generic-location\"></nord-icon> Map </label> </nord-segmented-control-item> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/segmented-control-item/SegmentedControlItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/segmented-control-item/SegmentedControlItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/segmented-control-item/SegmentedControlItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "IconsOnly",
          "declaration": {
            "name": "IconsOnly",
            "module": "src/segmented-control-item/SegmentedControlItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/segmented-control-item/SegmentedControlItem.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithIcons",
          "declaration": {
            "name": "WithIcons",
            "module": "src/segmented-control-item/SegmentedControlItem.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/segmented-control-item/SegmentedControlItem.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Segmented control items populate a segmented control with options.\nEvery item should be placed inside a segmented control.",
          "name": "SegmentedControlItem",
          "cssProperties": [
            {
              "description": "Controls the rounded corners of the item, using [border radius tokens](/tokens/#border-radius).",
              "name": "--n-segmented-control-item-border-radius",
              "default": "var(--n-border-radius-s)"
            },
            {
              "description": "Controls the spacing between elements within the item, using our [spacing tokens](/tokens/#space).",
              "name": "--n-segmented-control-item-gap",
              "default": "var(--n-space-xs)"
            },
            {
              "description": "Controls the overlayed gradient background on the item.",
              "name": "--n-segmented-control-item-gradient",
              "default": "linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.013) 100%))"
            },
            {
              "description": "Controls the background color of the item, using our [color tokens](/tokens/#color).",
              "name": "--n-segmented-control-item-background-color",
              "default": "var(--n-color-nav-hover)"
            },
            {
              "description": "Controls the color of the text within the item, using our [color tokens](/tokens/#color).",
              "name": "--n-segmented-control-item-color",
              "default": "var(--n-color-text-weaker)"
            },
            {
              "description": "Controls the inline, or left and right, padding of the item.",
              "name": "--n-segmented-control-item-padding-inline",
              "default": "calc(var(--n-space-m) / 1.2)"
            },
            {
              "description": "Controls the surrounding shadow, using our [box shadow tokens](/tokens/#box-shadow).",
              "name": "--n-segmented-control-item-box-shadow",
              "default": "none"
            },
            {
              "description": "Controls the size of the text within the item, using our [font tokens](/tokens/#font).",
              "name": "--n-segmented-control-item-font-size",
              "default": "var(--n-font-size-m)"
            },
            {
              "description": "Controls the weight of the text within the item, using our [font tokens](/tokens/#font).",
              "name": "--n-segmented-control-item-font-weight",
              "default": "var(--n-font-weight)"
            },
            {
              "description": "Controls the minimum block size, or height, of the item using our [spacing tokens](/tokens/#space).",
              "name": "--n-segmented-control-item-min-block-size",
              "default": "calc(var(--n-space-xl) - 2px)"
            },
            {
              "description": "Controls the inline size of the item.",
              "name": "--n-segmented-control-item-inline-size",
              "default": "auto"
            }
          ],
          "slots": [
            {
              "description": "Use when a label requires more than plain text.",
              "name": "label"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "inputId",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "inputSlot",
              "privacy": "protected",
              "default": "new LightDomController(this, { render: () => html` <input slot=\"input\" @blur=${this.handleBlur} @focus=${this.handleFocus} ${ref(this.focusableRef)} id=${this.inputId} type=\"radio\" class=\"n-input\" name=${cond(this.name)} .value=${cond(this.value)} .checked=${this.checked} ?disabled=${this.disabled} form=${cond(this._formId)} /> `, })",
              "description": "For accessibility reasons, we render the form parts of the component to the light DOM."
            },
            {
              "kind": "field",
              "name": "labelSlot",
              "privacy": "protected",
              "default": "new LightSlotController(this, { slotName: 'label', render: () => this.label ? html`<label slot=\"label-internal\" for=${this.inputId} class=\"n-segmented-control-item\">${this.label}</label>` : nothing, syncLightDom: (element) => { if (!isLabel(element)) { console.warn(`NORD: Only <label> elements should be placed in Segmented Control's \"label\" slot`) } else { element.htmlFor = this.inputId } }, })"
            },
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the segmented control item is checked or not.",
              "attribute": "checked",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the segmented control item.\nThis affects font-size and padding.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the segmented control item.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleCheckedChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "previousChecked",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "uncheckSiblings",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleBlur",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleFocus",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "events": [
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the segmented control item has been checked."
            },
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the input."
            }
          ],
          "attributes": [
            {
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the segmented control item is checked or not.",
              "fieldName": "checked"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the segmented control item.\nThis affects font-size and padding.",
              "fieldName": "size"
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the segmented control item.",
              "fieldName": "label"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "new",
          "category": "action",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use segmented control to allow users to pick one choice from a set of closely related choices, and immediately apply that selection.\n- Favor segmented control or [radio component](/components/radio/) over a select component when there are a small number of options. This reduces the number of clicks a user has to make, increasing efficiency.\n- Segmented control items are grouped by their `name` attribute. Therefore, it is crucial that the same `name` is used for a group of segmented control items.\n- Give each segmented control item within a group a unique `value`.\n- Segmented control items **must** be used in combination with a [segmented control component](/components/segmented-control/).\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place interactive content (buttons, links etc) inside the label.\n- Don’t use when a user can select more than one option. In this case, use a [checkbox](/components/checkbox/) or [selectable tag](/components/tag/?example=selectable) instead.\n- Don’t use for “accepting terms of service” and similar functionality. Use a [checkbox](/components/checkbox/) instead.\n- When you have more than 5 options to choose from. Consider using a [select](/components/select/) instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nSegmented control labels should be clear, accurate and predictable. It should be possible for the user to understand what they are enabling or disabling:\n\n<div class=\"n-usage n-usage-do\">User settings</div>\n<div class=\"n-usage n-usage-dont\">Option 1</div>\n\nWhen writing segmented control labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid ending in punctuation if it’s a single sentence, word, or a fragment:\n\n<div class=\"n-usage n-usage-do\">Blue</div>\n<div class=\"n-usage n-usage-dont\">Blue.</div>\n\nDo not use commas or semicolons at the end of each line\n\n<div class=\"n-usage n-usage-do\">Patient</div>\n<div class=\"n-usage n-usage-dont\">Patient;</div>\n\n---\n\n## Additional considerations\n\n- Once a segmented control item has been selected, users cannot return to having no items selected without refreshing their browser window. Therefore, you should always make sure one of the items is pre-selected.\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-segmented-control-item",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "SegmentedControlItem",
            "module": "src/segmented-control-item/SegmentedControlItem.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-segmented-control-item",
          "declaration": {
            "name": "SegmentedControlItem",
            "module": "src/segmented-control-item/SegmentedControlItem.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/select/Select.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Select', component: 'nord-select', tags: ['autodocs'], argTypes: { expand: { control: 'boolean' }, size: { control: 'select', options: ['s', 'm', 'l'], }, label: { control: 'text' }, hint: { control: 'text' }, hideLabel: { control: 'boolean' }, placeholder: { control: 'text' }, error: { control: 'text' }, required: { control: 'boolean' }, hideRequired: { control: 'boolean' }, autocomplete: { control: 'text' }, disabled: { control: 'boolean' }, name: { control: 'text' }, value: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { expand: false, size: 'm', hideLabel: false, required: false, hideRequired: false, autocomplete: 'off', disabled: false, }, render: args => html` <nord-select ?expand=${args.expand} size=${args.size} label=${args.label || nothing} hint=${args.hint || nothing} ?hide-label=${args.hideLabel} placeholder=${args.placeholder || nothing} error=${args.error || nothing} ?required=${args.required} ?hide-required=${args.hideRequired} autocomplete=${args.autocomplete || nothing} ?disabled=${args.disabled} name=${args.name || nothing} value=${args.value || nothing}><option value=\"\">Choose...</option>\\n <option value=\"1\">Option 1</option>\\n <option value=\"2\">Option 2</option>\\n <option value=\"3\">Option 3</option></nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "Autocomplete",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"title\" value=\"25\" autocomplete=\"honorific-prefix\" label=\"Title\" placeholder=\"Please select\"> <option value=\"mr\">Mr</option> <option value=\"miss\">Miss</option> <option value=\"ms\">Ms.</option> <option value=\"mrs\">Mrs.</option> <option value=\"dr\">Dr.</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"page-size\" value=\"25\" label=\"Label\"> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomButtonStyle",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-select { --n-button-background-color: var(--n-color-active); --n-button-gradient: none; --n-button-box-shadow: none; }</style> <nord-select name=\"page-size\" value=\"25\" label=\"Label\"> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomIcon",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"page-size\" value=\"25\" label=\"Label\"> <nord-icon slot=\"icon\" name=\"interface-filter\"></nord-icon> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomWidth",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-select style=\"--n-select-inline-size: 150px\" label=\"Size (150px)\"> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> <nord-select style=\"--n-select-inline-size: 300px\" label=\"Size (300px)\"> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> <nord-select label=\"Size (default, fits content)\" value=\"Default\"> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> <nord-select label=\"Size (expand to fill the available width)\" expand> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"page-size\" value=\"25\" disabled label=\"Label\"> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "Expanded",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select value=\"25\" label=\"Label\" expand> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "HiddenLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"page-size\" value=\"25\" label=\"Label\" hide-label> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "Required",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"name\" required value=\"25\" label=\"Required\"> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-select size=\"s\" name=\"page-size-1\" value=\"25\" label=\"Choose\"> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> <nord-select size=\"m\" name=\"page-size-2\" value=\"25\" label=\"Choose\"> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> <nord-select size=\"l\" name=\"page-size-3\" value=\"25\" label=\"Choose\"> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"page-size\" value=\"25\" label=\"Label\"> <div slot=\"hint\"> Hint is an accessible way to provide <strong>additional information</strong> that might help the user </div> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"page-size\" value=\"25\"> <div slot=\"label\">Number of items <span style=\"color: var(--n-color-accent)\">per page</span></div> <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAForm",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <form> <nord-stack gap=\"s\"> <nord-select name=\"pet\" label=\"Type of pet:\"> <option value=\"cat\">Cat</option> <option value=\"dog\">Dog</option> </nord-select> <nord-button variant=\"primary\">Submit</nord-button> </nord-stack> </form> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"page-size\" value=\"25\" label=\"Label\" hint=\"Hint is an accessible way to provide additional information that might help the user\" > <option value=\"25\">25 per page</option> <option value=\"50\">50 per page</option> <option value=\"100\">100 per page</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAPlaceholder",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"pet\" label=\"Type of pet\" placeholder=\"Please select\"> <option value=\"cat\">Cat</option> <option value=\"dog\">Dog</option> </nord-select> `, }"
        },
        {
          "kind": "variable",
          "name": "WithError",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-select name=\"pet\" label=\"Type of pet\" placeholder=\"Please select\" error=\"This field is required\"> <option value=\"cat\">Cat</option> <option value=\"dog\">Dog</option> </nord-select> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Autocomplete",
          "declaration": {
            "name": "Autocomplete",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomButtonStyle",
          "declaration": {
            "name": "CustomButtonStyle",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomIcon",
          "declaration": {
            "name": "CustomIcon",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomWidth",
          "declaration": {
            "name": "CustomWidth",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Expanded",
          "declaration": {
            "name": "Expanded",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HiddenLabel",
          "declaration": {
            "name": "HiddenLabel",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexHint",
          "declaration": {
            "name": "WithAComplexHint",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexLabel",
          "declaration": {
            "name": "WithAComplexLabel",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAForm",
          "declaration": {
            "name": "WithAForm",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAHint",
          "declaration": {
            "name": "WithAHint",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAPlaceholder",
          "declaration": {
            "name": "WithAPlaceholder",
            "module": "src/select/Select.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithError",
          "declaration": {
            "name": "WithError",
            "module": "src/select/Select.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/select/Select.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Select lets users choose one option from an options menu.\nConsider using select when you have 5 or more options to choose from.",
          "name": "Select",
          "cssProperties": [
            {
              "description": "Controls the block size, or height, of the select using our [spacing tokens](/tokens/#space).",
              "name": "--n-select-block-size",
              "default": "var(--n-space-xl)"
            },
            {
              "description": "Controls the inline size, or width, of the select.",
              "name": "--n-select-inline-size",
              "default": "fit-content"
            },
            {
              "description": "Controls the text color of the label, using our [color tokens](/tokens/#color).",
              "name": "--n-label-color",
              "default": "var(--n-color-text)"
            }
          ],
          "slots": [
            {
              "description": "Default slot for holding <option> elements.",
              "name": ""
            },
            {
              "description": "Use when a label requires more than plain text.",
              "name": "label"
            },
            {
              "description": "Use when a hint requires more than plain text.",
              "name": "hint"
            },
            {
              "description": "Optional slot that holds error text for the input.",
              "name": "error"
            },
            {
              "description": "Used to place an icon at the start of select.",
              "name": "icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "formValue",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "defaultSlot",
              "privacy": "private",
              "default": "new SlotController(this)"
            },
            {
              "kind": "field",
              "name": "optionObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'select'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "setupOptionObserver",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the select expands to fill the width of its container.",
              "attribute": "expand",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "options",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "getButtonText",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "HTMLOptionElement[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderOption",
              "privacy": "private",
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "HTMLOptionElement"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "attribute": "size",
              "reflects": true,
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "labelSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'label')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'error')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'hint')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formData",
              "privacy": "protected",
              "default": "new FormDataController(this, { value: () => this.formValue })",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'error'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'hint'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "attribute": "label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "attribute": "hint",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "attribute": "hide-label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "attribute": "placeholder",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "attribute": "error",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "attribute": "required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "attribute": "hide-required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "additionalContent",
                  "optional": true,
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderError",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getInvalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasHint",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasError",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              },
              "default": "'off'",
              "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
              "attribute": "autocomplete",
              "inheritedFrom": {
                "name": "AutocompleteMixin",
                "module": "src/common/mixins/AutocompleteMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the select expands to fill the width of its container.",
              "fieldName": "expand"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "fieldName": "size",
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "fieldName": "label",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "fieldName": "hint",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-label",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "fieldName": "hideLabel",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "fieldName": "placeholder",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "fieldName": "error",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "fieldName": "required",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "fieldName": "hideRequired",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              },
              "default": "'off'",
              "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
              "fieldName": "autocomplete",
              "inheritedFrom": {
                "name": "AutocompleteMixin",
                "module": "src/common/mixins/AutocompleteMixin.ts"
              }
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "SizeMixin",
              "module": "/src/common/mixins/SizeMixin.js"
            },
            {
              "name": "FormAssociatedMixin",
              "module": "/src/common/mixins/FormAssociatedMixin.js"
            },
            {
              "name": "AutocompleteMixin",
              "module": "/src/common/mixins/AutocompleteMixin.js"
            },
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "form",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to let a user choose one option from an options menu.\n- Use when you have more than 6 options to choose from.\n- Use when you don’t know how many options there will be.\n- Use hint text and placeholder to provide additional, non-critical instructions.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don't use a select if you have less than 6 options to choose from. Consider using [segmented control](/components/segmented-control/) or [radio components](/components/radio/) instead, if you have enough space to allow it.\n\n</div>\n\n---\n\n## Content guidelines\n\nSelect labels act as a title for the select field. Labels should typically be short and in noun&nbsp;form:\n\n<div class=\"n-usage n-usage-do\">Company name</div>\n<div class=\"n-usage n-usage-dont\">What is your company name?</div>\n\nWhen writing select labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Company name</div>\n<div class=\"n-usage n-usage-dont\">Company Name</div>\n\nDo not use colons in select labels:\n\n<div class=\"n-usage n-usage-do\">Choose organization</div>\n<div class=\"n-usage n-usage-dont\">Choose organization:</div>\n",
          "examples": [],
          "dependencies": [
            "icon",
            "button"
          ],
          "tagName": "nord-select",
          "customElement": true,
          "events": [
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the input.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the input's value is changed via user interaction.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Select",
            "module": "src/select/Select.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-select",
          "declaration": {
            "name": "Select",
            "module": "src/select/Select.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/skeleton/Skeleton.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Skeleton', component: 'nord-skeleton', tags: ['autodocs'], argTypes: { effect: { control: 'select', options: ['pulse', 'sheen'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: {}, render: args => html` <nord-skeleton effect=${args.effect}></nord-skeleton> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>.skeleton-overview header { display: flex; align-items: center; margin-block-end: var(--n-space-s); } .skeleton-overview header nord-skeleton:last-child { flex: 0 0 auto; inline-size: 30%; } .skeleton-overview nord-skeleton { margin-bottom: var(--n-space-m); } .skeleton-overview nord-skeleton:nth-child(1) { inline-size: 3rem; block-size: 3rem; margin-inline-end: var(--n-space-m); } .skeleton-overview nord-skeleton:nth-child(3) { inline-size: 90%; } .skeleton-overview nord-skeleton:nth-child(4) { inline-size: 80%; }</style> <div class=\"skeleton-overview\" aria-busy=\"true\"> <header> <nord-skeleton></nord-skeleton> <nord-skeleton></nord-skeleton> </header> <nord-skeleton></nord-skeleton> <nord-skeleton></nord-skeleton> <nord-skeleton></nord-skeleton> <nord-visually-hidden>Loading</nord-visually-hidden> </div> `, }"
        },
        {
          "kind": "variable",
          "name": "Effects",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack aria-busy=\"true\"> <nord-skeleton></nord-skeleton> <p>None</p> <nord-skeleton effect=\"sheen\"></nord-skeleton> <p>Sheen</p> <nord-skeleton effect=\"pulse\"></nord-skeleton> <p>Pulse</p> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "InsideCard",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>.skeleton-header { width: 30%; } .skeleton-paragraph nord-skeleton { margin-block-end: var(--n-space-m); width: 90%; } .skeleton-paragraph nord-skeleton:nth-child(2) { width: 75%; } .skeleton-paragraph nord-skeleton:nth-child(4) { width: 70%; } .skeleton-paragraph nord-skeleton:last-child { width: 30%; margin-block-end: 0; }</style> <nord-card padding=\"l\" aria-busy=\"true\"> <nord-skeleton effect=\"sheen\" class=\"skeleton-header\" slot=\"header\"></nord-skeleton> <div class=\"skeleton-paragraph\"> <nord-skeleton effect=\"sheen\"></nord-skeleton> <nord-skeleton effect=\"sheen\"></nord-skeleton> <nord-skeleton effect=\"sheen\"></nord-skeleton> <nord-skeleton effect=\"sheen\"></nord-skeleton> <nord-skeleton effect=\"sheen\"></nord-skeleton> </div> <nord-visually-hidden>Loading</nord-visually-hidden> </nord-card> `, }"
        },
        {
          "kind": "variable",
          "name": "Paragraph",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>.skeleton-paragraph nord-skeleton { margin-bottom: var(--n-space-m); } .skeleton-paragraph nord-skeleton:nth-child(2) { width: 95%; } .skeleton-paragraph nord-skeleton:nth-child(4) { width: 90%; } .skeleton-paragraph nord-skeleton:nth-child(5) { width: 50%; }</style> <div class=\"skeleton-paragraph\" aria-busy=\"true\"> <nord-skeleton></nord-skeleton> <nord-skeleton></nord-skeleton> <nord-skeleton></nord-skeleton> <nord-skeleton></nord-skeleton> <nord-skeleton></nord-skeleton> <nord-visually-hidden>Loading</nord-visually-hidden> </div> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/skeleton/Skeleton.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/skeleton/Skeleton.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/skeleton/Skeleton.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Effects",
          "declaration": {
            "name": "Effects",
            "module": "src/skeleton/Skeleton.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "InsideCard",
          "declaration": {
            "name": "InsideCard",
            "module": "src/skeleton/Skeleton.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Paragraph",
          "declaration": {
            "name": "Paragraph",
            "module": "src/skeleton/Skeleton.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/skeleton/Skeleton.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Skeletons are used to provide a low fidelity representation of content\nbefore it appears in a view. This improves the perceived loading time\nfor our users.",
          "name": "Skeleton",
          "cssProperties": [
            {
              "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
              "name": "--n-skeleton-border-radius",
              "default": "var(--n-border-radius)"
            },
            {
              "description": "Controls the main color of the skeleton, using our [color tokens](/tokens/#color).",
              "name": "--n-skeleton-color",
              "default": "var(--n-color-border)"
            },
            {
              "description": "Controls the sheen color of the skeleton, using our [color tokens](/tokens/#color).",
              "name": "--n-skeleton-sheen-color",
              "default": "var(--n-color-border-strong)"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "effect",
              "type": {
                "text": "'pulse' | 'sheen' | undefined"
              },
              "description": "Determines which animation effect the skeleton will use.\nThe default is no animation.",
              "attribute": "effect",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "effect",
              "type": {
                "text": "'pulse' | 'sheen' | undefined"
              },
              "description": "Determines which animation effect the skeleton will use.\nThe default is no animation.",
              "fieldName": "effect"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "feedback",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use skeleton component for dynamic content only.\n- Use to give the user an indication of what the page layout will be like once loaded.\n- Mimick the actual layout using multiple Skeleton components.\n- Use `aria-busy=\"true\"` to indicate which area on the screen is currently loading and remove it or set it to `false` once loaded.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use Skeleton component for static content.\n- Don’t show placeholder content after Skeleton disappears that will change when the page fully loads.\n\n</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-skeleton",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Skeleton",
            "module": "src/skeleton/Skeleton.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-skeleton",
          "declaration": {
            "name": "Skeleton",
            "module": "src/skeleton/Skeleton.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/spinner/Spinner.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Spinner', component: 'nord-spinner', tags: ['autodocs'], argTypes: { size: { control: 'select', options: ['xs', 's', 'm', 'l', 'xl', 'xxl'], }, color: { control: 'text' }, label: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { size: 'm', }, render: args => html` <nord-spinner size=${args.size} color=${args.color || nothing} label=${args.label || nothing}></nord-spinner> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-spinner size=\"xl\"></nord-spinner>`, }"
        },
        {
          "kind": "variable",
          "name": "Color",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-spinner color=\"var(--n-color-icon)\"></nord-spinner>`, }"
        },
        {
          "kind": "variable",
          "name": "Position",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <div style=\" position: absolute; inset-block-start: 50%; inset-inline-start: 50%; transform: translateX(-50%) translateY(-50%); \" > <nord-spinner size=\"xl\"></nord-spinner> </div> `, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-spinner size=\"xxl\"></nord-spinner>`, }"
        },
        {
          "kind": "variable",
          "name": "WithLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-spinner size=\"l\" label=\"Loading, please wait\"></nord-spinner>`, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/spinner/Spinner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/spinner/Spinner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/spinner/Spinner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Color",
          "declaration": {
            "name": "Color",
            "module": "src/spinner/Spinner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Position",
          "declaration": {
            "name": "Position",
            "module": "src/spinner/Spinner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/spinner/Spinner.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithLabel",
          "declaration": {
            "name": "WithLabel",
            "module": "src/spinner/Spinner.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/spinner/Spinner.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Spinner component is used to indicate users that their action is being\nprocessed. You can customize the size and color of the spinner with the\nprovided properties.",
          "name": "Spinner",
          "cssProperties": [
            {
              "description": "Controls the color the spinner.",
              "name": "--n-spinner-color",
              "default": "var(--n-color-accent)"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'"
              },
              "default": "'m'",
              "description": "The size of the spinner.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "color",
              "type": {
                "text": "string | undefined"
              },
              "description": "The color of the spinner.\nCan accept any valid CSS color value, including custom properties.\nTakes precedence over the `--n-spinner-color` CSS custom property.",
              "attribute": "color",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "An accessible label for the spinner.\nIf no label is supplied, the spinner is hidden from assistive technology.",
              "attribute": "label",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "size",
              "type": {
                "text": "'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'"
              },
              "default": "'m'",
              "description": "The size of the spinner.",
              "fieldName": "size"
            },
            {
              "name": "color",
              "type": {
                "text": "string | undefined"
              },
              "description": "The color of the spinner.\nCan accept any valid CSS color value, including custom properties.\nTakes precedence over the `--n-spinner-color` CSS custom property.",
              "fieldName": "color"
            },
            {
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "An accessible label for the spinner.\nIf no label is supplied, the spinner is hidden from assistive technology.",
              "fieldName": "label"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "feedback",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use for indicating users that their action is being processed.\n- Use the label property to provide an accessible label for the spinner. If no label is supplied, the spinner is hidden from assistive technology.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use to show progress. Favor a progress bar instead.\n\n</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-spinner",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Spinner",
            "module": "src/spinner/Spinner.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-spinner",
          "declaration": {
            "name": "Spinner",
            "module": "src/spinner/Spinner.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/stack/Stack.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Stack', component: 'nord-stack', tags: ['autodocs'], argTypes: { gap: { control: 'select', options: ['none', 'xs', 's', 'm', 'l', 'xl', 'xxl'], }, direction: { control: 'select', options: ['vertical', 'horizontal'], }, alignItems: { control: 'select', options: ['center', 'start', 'end', 'baseline', 'stretch'], }, wrap: { control: 'boolean' }, justifyContent: { control: 'select', options: ['center', 'start', 'end', 'space-between', 'space-around', 'space-evenly'], }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { gap: 'm', direction: 'vertical', alignItems: 'stretch', wrap: false, }, render: args => html` <nord-stack gap=${args.gap} direction=${args.direction} align-items=${args.alignItems} ?wrap=${args.wrap} justify-content=${args.justifyContent}><nord-button>One</nord-button>\\n <nord-button>Two</nord-button>\\n <nord-button>Three</nord-button></nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "HorizontalCustomGap",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" gap=\"l\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "HorizontalStack",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Pagination",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-stack direction=\"horizontal\" align-items=\"center\"> <p class=\"n-color-text-weaker\" style=\"flex: 1 0 auto\">Showing 13 - 25 of 51</p> <nord-visually-hidden id=\"short-pagination-label\">Short pagination</nord-visually-hidden> <nord-stack direction=\"horizontal\" role=\"navigation\" aria-labelledby=\"short-pagination-label\" style=\"--n-stack-gap: var(--n-space-xs)\" > <nord-button> <nord-icon name=\"arrow-left-small\" label=\"Previous\"></nord-icon> </nord-button> <nord-button variant=\"plain\">1</nord-button> <nord-button variant=\"primary\" aria-current=\"page\">2</nord-button> <nord-button variant=\"plain\">3</nord-button> <nord-button variant=\"plain\">4</nord-button> <nord-button variant=\"plain\">5</nord-button> <nord-button> <nord-icon name=\"arrow-right-small\" label=\"Next\"></nord-icon> </nord-button> </nord-stack> </nord-stack> <nord-stack direction=\"horizontal\" align-items=\"center\" wrap> <p class=\"n-color-text-weaker\">Showing 13 - 25 of 461</p> <nord-visually-hidden id=\"long-pagination-label\">Long pagination</nord-visually-hidden> <nav aria-labelledby=\"long-pagination-label\"> <nord-stack direction=\"horizontal\" align-items=\"center\" role=\"list\" style=\"--n-stack-gap: var(--n-space-xs)\"> <nord-button role=\"listitem\"> <nord-icon name=\"arrow-left-small\" label=\"Previous\"></nord-icon> </nord-button> <nord-button role=\"listitem\" variant=\"plain\">1</nord-button> <p class=\"n-padding-i-m n-color-text-weaker\" aria-hidden=\"true\">…</p> <nord-button role=\"listitem\" variant=\"plain\">41</nord-button> <nord-button role=\"listitem\" variant=\"plain\">42</nord-button> <nord-button role=\"listitem\" variant=\"plain\">43</nord-button> <nord-button role=\"listitem\" variant=\"primary\" aria-current=\"page\">44</nord-button> <nord-button role=\"listitem\" variant=\"plain\">45</nord-button> <nord-button role=\"listitem\" variant=\"plain\">46</nord-button> <nord-button role=\"listitem\" variant=\"plain\">47</nord-button> <p class=\"n-padding-i-m n-color-text-weaker\" aria-hidden=\"true\">…</p> <nord-button role=\"listitem\" variant=\"plain\">99</nord-button> <nord-button role=\"listitem\"> <nord-icon name=\"arrow-right-small\" label=\"Next\"></nord-icon> </nord-button> </nord-stack> </nav> </nord-stack> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingHorizontalAlignBaseline",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" justify-content=\"center\" align-items=\"baseline\"> <div class=\"n-font-size-xl\">Stack item <br />with multiple <br />rows of text <br />and bigger font size</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingHorizontalAlignCenter",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" justify-content=\"center\" align-items=\"center\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingHorizontalAlignEnd",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" justify-content=\"center\" align-items=\"end\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingHorizontalAlignStart",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" justify-content=\"center\" align-items=\"start\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingHorizontalAlignStretch",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" align-items=\"stretch\" justify-content=\"center\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingHorizontalCenterJustification",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" justify-content=\"center\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingHorizontalEndJustification",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" justify-content=\"end\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingHorizontalSpaceAroundJustification",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" justify-content=\"space-around\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingHorizontalSpaceBetweenJustification",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" justify-content=\"space-between\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingHorizontalStartJustification",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"horizontal\" justify-content=\"start\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingResponsiveMediaQuery",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); box-sizing: border-box; width: 100%; } @media (max-width: 768px) { .stack { flex-direction: column; } }</style> <nord-stack direction=\"horizontal\" class=\"stack\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingVerticalAlignEnd",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack align-items=\"end\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "UsingVerticalCustomGap",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack gap=\"l\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "VerticalStackWithNestedForms",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"xl\"> <nord-button>Button</nord-button> <nord-fieldset label=\"Fieldset label\"> <nord-stack> <nord-checkbox name=\"option\" value=\"1\" label=\"Option 1\"></nord-checkbox> <nord-checkbox name=\"option\" value=\"2\" label=\"Option 2\"></nord-checkbox> </nord-stack> </nord-fieldset> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "VerticalStack",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>nord-stack div { background: var(--n-color-status-info-weak); padding: var(--n-space-l); }</style> <nord-stack direction=\"vertical\"> <div>Stack item <br />with multiple <br />rows of text</div> <div>Stack item</div> <div>Stack item</div> <div>Stack item</div> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HorizontalCustomGap",
          "declaration": {
            "name": "HorizontalCustomGap",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HorizontalStack",
          "declaration": {
            "name": "HorizontalStack",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Pagination",
          "declaration": {
            "name": "Pagination",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingHorizontalAlignBaseline",
          "declaration": {
            "name": "UsingHorizontalAlignBaseline",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingHorizontalAlignCenter",
          "declaration": {
            "name": "UsingHorizontalAlignCenter",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingHorizontalAlignEnd",
          "declaration": {
            "name": "UsingHorizontalAlignEnd",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingHorizontalAlignStart",
          "declaration": {
            "name": "UsingHorizontalAlignStart",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingHorizontalAlignStretch",
          "declaration": {
            "name": "UsingHorizontalAlignStretch",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingHorizontalCenterJustification",
          "declaration": {
            "name": "UsingHorizontalCenterJustification",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingHorizontalEndJustification",
          "declaration": {
            "name": "UsingHorizontalEndJustification",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingHorizontalSpaceAroundJustification",
          "declaration": {
            "name": "UsingHorizontalSpaceAroundJustification",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingHorizontalSpaceBetweenJustification",
          "declaration": {
            "name": "UsingHorizontalSpaceBetweenJustification",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingHorizontalStartJustification",
          "declaration": {
            "name": "UsingHorizontalStartJustification",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingResponsiveMediaQuery",
          "declaration": {
            "name": "UsingResponsiveMediaQuery",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingVerticalAlignEnd",
          "declaration": {
            "name": "UsingVerticalAlignEnd",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "UsingVerticalCustomGap",
          "declaration": {
            "name": "UsingVerticalCustomGap",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "VerticalStackWithNestedForms",
          "declaration": {
            "name": "VerticalStackWithNestedForms",
            "module": "src/stack/Stack.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "VerticalStack",
          "declaration": {
            "name": "VerticalStack",
            "module": "src/stack/Stack.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/stack/Stack.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Stack component manages layout of immediate children along the\nvertical or horizontal axis with optional spacing between each child.",
          "name": "Stack",
          "cssProperties": [
            {
              "description": "Controls the spacing between items, using our [spacing tokens](/tokens/#space).",
              "name": "--n-stack-gap",
              "default": "var(--n-space-m)"
            }
          ],
          "slots": [
            {
              "description": "The stack content.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "gap",
              "type": {
                "text": "'none' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'"
              },
              "default": "'m'",
              "description": "The space injected between components.",
              "attribute": "gap",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "direction",
              "type": {
                "text": "'vertical' | 'horizontal'"
              },
              "default": "'vertical'",
              "description": "The direction of the stack.",
              "attribute": "direction",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "alignItems",
              "type": {
                "text": "| 'center'\n    | 'start'\n    | 'end'\n    | 'baseline'\n    | 'stretch' | undefined"
              },
              "default": "'stretch'",
              "description": "How to align the child items inside the stack.",
              "attribute": "align-items",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "wrap",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Defines whether the Stack items are forced in a single line\nor can be flowed into multiple lines.",
              "attribute": "wrap",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "justifyContent",
              "type": {
                "text": "| 'center'\n    | 'start'\n    | 'end'\n    | 'space-between'\n    | 'space-around'\n    | 'space-evenly' | undefined"
              },
              "description": "How to justify the child items inside the stack.",
              "attribute": "justify-content",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "gap",
              "type": {
                "text": "'none' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'"
              },
              "default": "'m'",
              "description": "The space injected between components.",
              "fieldName": "gap"
            },
            {
              "name": "direction",
              "type": {
                "text": "'vertical' | 'horizontal'"
              },
              "default": "'vertical'",
              "description": "The direction of the stack.",
              "fieldName": "direction"
            },
            {
              "name": "align-items",
              "type": {
                "text": "| 'center'\n    | 'start'\n    | 'end'\n    | 'baseline'\n    | 'stretch' | undefined"
              },
              "default": "'stretch'",
              "description": "How to align the child items inside the stack.",
              "fieldName": "alignItems"
            },
            {
              "name": "wrap",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Defines whether the Stack items are forced in a single line\nor can be flowed into multiple lines.",
              "fieldName": "wrap"
            },
            {
              "name": "justify-content",
              "type": {
                "text": "| 'center'\n    | 'start'\n    | 'end'\n    | 'space-between'\n    | 'space-around'\n    | 'space-evenly' | undefined"
              },
              "description": "How to justify the child items inside the stack.",
              "fieldName": "justifyContent"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "structure",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when you need to stack multiple components vertically or horizontally.\n- Use when you want to adjust the white space between two or more components.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for building grid based layouts.\n\n</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-stack",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Stack",
            "module": "src/stack/Stack.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-stack",
          "declaration": {
            "name": "Stack",
            "module": "src/stack/Stack.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tab/Tab.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Tab', component: 'nord-tab', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { selected: false, }, render: ({ selected }) => html` <nord-tab-group label=\"Tabs\"> <nord-tab slot=\"tab\" ?selected=\"${selected}\">Profile</nord-tab> <nord-tab slot=\"tab\" ?selected=\"${!selected}\">Settings</nord-tab> </nord-tab-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-tab-group label=\"Tabs\"> <nord-tab slot=\"tab\">Profile</nord-tab> <nord-tab slot=\"tab\" selected>Settings</nord-tab> </nord-tab-group> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/tab/Tab.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/tab/Tab.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/tab/Tab.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tab/Tab.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "The interactive tab button for use within the tab group component.",
          "name": "Tab",
          "cssProperties": [
            {
              "description": "Controls the text color of the tab, using our [color tokens](/tokens/#color).",
              "name": "--n-tab-color",
              "default": "var(--n-color-text-weak)"
            },
            {
              "description": "Controls the font weight of the tab, using our [font tokens](/tokens/#font).",
              "name": "--n-tab-font-weight",
              "default": "var(--n-font-weight)"
            }
          ],
          "slots": [
            {
              "description": "The tab button content.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "defaultSlot",
              "privacy": "private",
              "default": "new SlotController(this)"
            },
            {
              "kind": "field",
              "name": "selected",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether the tab item is selected",
              "attribute": "selected",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleSelectionChange",
              "privacy": "protected",
              "description": "Apply accessible attributes and values to the tab button.\nObserve the selected property if it changes"
            }
          ],
          "attributes": [
            {
              "name": "selected",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether the tab item is selected",
              "fieldName": "selected"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "navigation",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use the tab component within the tab group component.\n- Use the `selected` option to signify if the tab is selected.\n- Use text, icons and other non-interactive content within the tab.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use tabs to navigate to other pages. Use navigation or links instead.\n- Don't use the tab component outside of the tab group component.\n- Don't add interactive elements, such as buttons and links, inside the tab component.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing tab labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in tab labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">The dashboard</div>\n\nAvoid ending tab labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Patients</div>\n<div class=\"n-usage n-usage-dont\">Patients.</div>\n\nUse as few words as possible to describe each tab label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoid all caps for tab labels:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n\n---\n\n## Additional considerations\n\n- If the content contained within the tabs UI has significance or is important for the user to see, consider using a different form of presentation that doesn't obscure it.\n- If there is a particular section you wish to show out of order of the tabs UI itself consider using the `selected` option to select the tab but prevent the order of the tabs being affected.\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-tab",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Tab",
            "module": "src/tab/Tab.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-tab",
          "declaration": {
            "name": "Tab",
            "module": "src/tab/Tab.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tab-group/TabGroup.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Tab Group', component: 'nord-tab-group', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { label: 'Title', sticky: false, padding: 'm', }, render: ({ label, sticky, padding }) => html` <nord-tab-group label=\"${label}\" ?sticky=\"${sticky}\" padding=\"${padding}\"> <nord-tab slot=\"tab\">Overview</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt amet ipsam enim sed sequi voluptatibus, culpa explicabo voluptate maxime a, cumque ea reprehenderit ad consequuntur veniam? Fuga impedit iste tenetur. </p> </nord-tab-panel> <nord-tab slot=\"tab\">Terminals</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto quasi, incidunt eum ad, rerum dolorum sequi numquam illum deleniti nobis doloremque asperiores natus perferendis, recusandae at dolorem et aperiam totam. </p> </nord-tab-panel> <nord-tab slot=\"tab\">Stores</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Iste, aperiam doloribus. Dolore, eaque. Distinctio consequatur alias quae commodi praesentium recusandae libero, voluptate veniam. Commodi, velit ad ex sequi ut fugit? </p> </nord-tab-panel> </nord-tab-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-tab-group label=\"Title\"> <nord-tab slot=\"tab\">Overview</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt amet ipsam enim sed sequi voluptatibus, culpa explicabo voluptate maxime a, cumque ea reprehenderit ad consequuntur veniam? Fuga impedit iste tenetur. </p> </nord-tab-panel> <nord-tab slot=\"tab\">Terminals</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto quasi, incidunt eum ad, rerum dolorum sequi numquam illum deleniti nobis doloremque asperiores natus perferendis, recusandae at dolorem et aperiam totam. </p> </nord-tab-panel> <nord-tab slot=\"tab\">Stores</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Iste, aperiam doloribus. Dolore, eaque. Distinctio consequatur alias quae commodi praesentium recusandae libero, voluptate veniam. Commodi, velit ad ex sequi ut fugit? </p> </nord-tab-panel> </nord-tab-group> `, }"
        },
        {
          "kind": "variable",
          "name": "CardsInsidePanels",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-tab-group label=\"Title\" sticky padding=\"l\"> <nord-tab slot=\"tab\">Overview</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card header 2</h2> Card content </nord-card> </nord-tab-panel> <nord-tab slot=\"tab\">Terminals</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card header 2</h2> Card content </nord-card> </nord-tab-panel> <nord-tab slot=\"tab\">Stores</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card header 3</h2> Card content </nord-card> </nord-tab-panel> <nord-tab slot=\"tab\">Account holders</nord-tab> <nord-tab-panel> <nord-card> <h2 slot=\"header\">Card header 4</h2> Card content </nord-card> </nord-tab-panel> </nord-tab-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Selected",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-tab-group label=\"Title\"> <nord-tab slot=\"tab\">Overview</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt amet ipsam enim sed sequi voluptatibus, culpa explicabo voluptate maxime a, cumque ea reprehenderit ad consequuntur veniam? Fuga impedit iste tenetur. </p> </nord-tab-panel> <nord-tab slot=\"tab\" selected>Terminals</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto quasi, incidunt eum ad, rerum dolorum sequi numquam illum deleniti nobis doloremque asperiores natus perferendis, recusandae at dolorem et aperiam totam. </p> </nord-tab-panel> <nord-tab slot=\"tab\">Stores</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Iste, aperiam doloribus. Dolore, eaque. Distinctio consequatur alias quae commodi praesentium recusandae libero, voluptate veniam. Commodi, velit ad ex sequi ut fugit? </p> </nord-tab-panel> </nord-tab-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Sticky",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-tab-group label=\"Title\" sticky> <nord-tab slot=\"tab\">Overview</nord-tab> <nord-tab-panel> <div class=\"n-typeset\"> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> </div> </nord-tab-panel> <nord-tab slot=\"tab\">Terminals</nord-tab> <nord-tab-panel> <div class=\"n-typeset\"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto quasi, incidunt eum ad, rerum dolorum sequi numquam illum deleniti nobis doloremque asperiores natus perferendis, recusandae at dolorem et aperiam totam. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Enim, corporis vero vel possimus ab cum! Soluta, illum sint dolore, velit nisi alias ad, aliquam deleniti iure impedit quasi labore rem! </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugiat perferendis reprehenderit aut ducimus voluptatem excepturi sed cumque vero cupiditate aliquid? Repudiandae quis dolorem optio accusantium debitis minus, ducimus consequatur quisquam! </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Quaerat dolore rerum expedita velit sit accusamus molestiae placeat eum, mollitia sunt voluptatum quos fugiat maiores magni aut temporibus necessitatibus dolorum atque. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Sed incidunt recusandae ullam beatae, deleniti eaque amet nihil, cumque et, reiciendis inventore at hic quasi debitis suscipit voluptatem illo pariatur neque? </p> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> </div> </nord-tab-panel> <nord-tab slot=\"tab\">Stores</nord-tab> <nord-tab-panel> <div class=\"n-typeset\"> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolores harum, eligendi optio rem cumque aliquam eos. Pariatur ea eligendi possimus eius? Excepturi beatae perspiciatis aliquid recusandae accusantium culpa dolor cum. </p> <p> Lorem ipsum dolor, sit amet consectetur adipisicing elit. Doloremque pariatur ipsam deserunt quia consequatur! Eligendi aliquid enim eius, quos quasi velit! Doloremque nam, perferendis fugit corporis similique pariatur quam aliquid. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Id sint non delectus quas? Quos excepturi aspernatur dolore ab esse debitis, harum laboriosam hic ea incidunt quaerat? Inventore aperiam sint odio. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Sunt architecto consequuntur harum aperiam dolorum tempore corrupti quaerat in deserunt non ab, corporis placeat dicta porro quisquam voluptatem dolores unde! </p> <p> Lorem ipsum dolor sit amet consectetur, adipisicing elit. Aliquid iste debitis reiciendis optio quae ratione et obcaecati perspiciatis. Nemo ex aliquam consectetur? Accusamus, voluptas nesciunt. Nulla aperiam in tempore odio! </p> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> <p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nemo officia sint soluta consequuntur, quae corporis perspiciatis veritatis culpa vitae delectus, nulla, incidunt dolorem. Mollitia blanditiis iusto voluptatem repellat facere voluptates? </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Labore veritatis, molestias incidunt quas quos dolor. Aperiam neque, commodi, velit corrupti mollitia quos tempora, eos laboriosam numquam sequi impedit repellat? </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi voluptas veritatis atque, repellat ullam tenetur laudantium modi provident totam, eveniet natus aperiam porro voluptates maiores laboriosam quod. Incidunt, labore reprehenderit. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit, incidunt! Quas dicta beatae eveniet, sit fugiat consequuntur nobis placeat recusandae, reiciendis, blanditiis incidunt illo dolore ratione quia repudiandae nulla sunt. </p> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati vitae tempore quae, ducimus in ipsa neque illo dolores aliquid. Optio, recusandae. Iste voluptatibus itaque repudiandae cupiditate unde at? Expedita, eum. </p> </div> </nord-tab-panel> </nord-tab-group> `, }"
        },
        {
          "kind": "variable",
          "name": "TabsInCards",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-card padding=\"none\"> <nord-tab-group label=\"Title\" padding=\"m\"> <nord-tab slot=\"tab\">Overview</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt amet ipsam enim sed sequi voluptatibus, culpa explicabo voluptate maxime a, cumque ea reprehenderit ad consequuntur veniam? Fuga impedit iste tenetur. </p> </nord-tab-panel> <nord-tab slot=\"tab\">Terminals</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto quasi, incidunt eum ad, rerum dolorum sequi numquam illum deleniti nobis doloremque asperiores natus perferendis, recusandae at dolorem et aperiam totam. </p> </nord-tab-panel> <nord-tab slot=\"tab\">Stores</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Iste, aperiam doloribus. Dolore, eaque. Distinctio consequatur alias quae commodi praesentium recusandae libero, voluptate veniam. Commodi, velit ad ex sequi ut fugit? </p> </nord-tab-panel> </nord-tab-group> </nord-card> <nord-card padding=\"none\"> <nord-tab-group label=\"Title\" padding=\"l\"> <nord-tab slot=\"tab\">Overview</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt amet ipsam enim sed sequi voluptatibus, culpa explicabo voluptate maxime a, cumque ea reprehenderit ad consequuntur veniam? Fuga impedit iste tenetur. </p> </nord-tab-panel> <nord-tab slot=\"tab\">Terminals</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto quasi, incidunt eum ad, rerum dolorum sequi numquam illum deleniti nobis doloremque asperiores natus perferendis, recusandae at dolorem et aperiam totam. </p> </nord-tab-panel> <nord-tab slot=\"tab\">Stores</nord-tab> <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Iste, aperiam doloribus. Dolore, eaque. Distinctio consequatur alias quae commodi praesentium recusandae libero, voluptate veniam. Commodi, velit ad ex sequi ut fugit? </p> </nord-tab-panel> </nord-tab-group> </nord-card> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "TabsInPopout",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-button aria-controls=\"example\" aria-haspopup=\"true\"> Download <nord-icon slot=\"end\" name=\"interface-download\"></nord-icon> </nord-button> <nord-popout id=\"example\"> <nord-stack style=\"padding: var(--n-space-m)\" direction=\"horizontal\" align-items=\"center\"> <nord-stack direction=\"horizontal\" align-items=\"center\" gap=\"s\"> <h3 class=\"n-font-size-l n-font-weight-active\">Download patient data</h3> </nord-stack> <nord-icon name=\"interface-help\" aria-describedby=\"tooltip\" label=\"Help\"></nord-icon> </nord-stack> <nord-tab-group label=\"Download options\" padding=\"m\"> <nord-tab slot=\"tab\">JSON</nord-tab> <nord-tab-panel> <nord-button variant=\"primary\"> Download patient-data.json <nord-icon slot=\"end\" name=\"interface-download\"></nord-icon> </nord-button> <p class=\"n-typescale-s n-margin-b-s\">Data will be downloaded directly to your device.</p> </nord-tab-panel> <nord-tab slot=\"tab\">CSV</nord-tab> <nord-tab-panel> <nord-button variant=\"primary\"> Download patient-data.csv <nord-icon slot=\"end\" name=\"interface-download\"></nord-icon> </nord-button> <p class=\"n-typescale-s n-margin-b-s\">Data will be downloaded directly to your device.</p> </nord-tab-panel> <nord-tab slot=\"tab\">Excel</nord-tab> <nord-tab-panel> <nord-button variant=\"primary\"> Download patient-data.xlsx <nord-icon slot=\"end\" name=\"interface-download\"></nord-icon> </nord-button> <p class=\"n-typescale-s n-margin-b-s\">Data will be downloaded directly to your device.</p> </nord-tab-panel> </nord-tab-group> <nord-dropdown-group heading=\"Viewing options\" style=\"padding: var(--n-space-s)\"> <nord-dropdown-item> <nord-icon slot=\"start\" name=\"interface-new-window\"></nord-icon> Open in a new window </nord-dropdown-item> <nord-dropdown-item ><nord-icon slot=\"start\" name=\"interface-copy\"></nord-icon> Copy a direct link </nord-dropdown-item> </nord-dropdown-group> </nord-popout> <nord-tooltip id=\"tooltip\">Select a download option</nord-tooltip> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/tab-group/TabGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/tab-group/TabGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/tab-group/TabGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CardsInsidePanels",
          "declaration": {
            "name": "CardsInsidePanels",
            "module": "src/tab-group/TabGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Selected",
          "declaration": {
            "name": "Selected",
            "module": "src/tab-group/TabGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Sticky",
          "declaration": {
            "name": "Sticky",
            "module": "src/tab-group/TabGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TabsInCards",
          "declaration": {
            "name": "TabsInCards",
            "module": "src/tab-group/TabGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TabsInPopout",
          "declaration": {
            "name": "TabsInPopout",
            "module": "src/tab-group/TabGroup.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tab-group/TabGroup.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Tab Group allows multiple panels to be contained within a single window,\nusing tabs as a navigational element.",
          "name": "TabGroup",
          "cssProperties": [
            {
              "description": "Controls the padding around the tab group (including the tab list), using our [spacing tokens](/tokens/#space).",
              "name": "--n-tab-group-padding",
              "default": "0"
            }
          ],
          "slots": [
            {
              "description": "The element which contains the content to be revealed.",
              "name": ""
            },
            {
              "description": "The element which contains all tabs to reveal tabbed content.",
              "name": "tab"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "direction",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "observer",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "observerOptions",
              "type": {
                "text": "object"
              },
              "privacy": "private",
              "static": true,
              "default": "{ attributes: true, subtree: true, attributeFilter: ['selected'], attributeOldValue: true, }"
            },
            {
              "kind": "field",
              "name": "tabGroupId",
              "privacy": "private",
              "default": "`nord-tab-group-${tabGroupCount++}`",
              "description": "Unique ID for each tab group component present."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Adds an accessible label to the tab list container.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "padding",
              "type": {
                "text": "'m' | 'l' | 'none' | undefined"
              },
              "default": "'m'",
              "description": "Controls the padding of the tab group component.",
              "attribute": "padding",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "sticky",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether the tab list sticks to the top of the tab group as you scroll.",
              "attribute": "sticky",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "selectedTab",
              "privacy": "private",
              "description": "The current tab node selected in the tab group."
            },
            {
              "kind": "method",
              "name": "updateSlots",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setupObserver",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleMutation",
              "privacy": "private",
              "description": "If the selected tab is selected programmatically update all the tabs."
            },
            {
              "kind": "field",
              "name": "initialSelectedTab",
              "privacy": "private",
              "description": "Get the selected tab button, or the first tab button.",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "setupTabs",
              "privacy": "private",
              "description": "Apply accessible attributes and values to the tab buttons."
            },
            {
              "kind": "method",
              "name": "setupPanels",
              "privacy": "private",
              "description": "Apply accessible attributes and values to the tab panels."
            },
            {
              "kind": "method",
              "name": "handleTabChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "previousTab",
              "privacy": "private",
              "parameters": [
                {
                  "name": "tab",
                  "type": {
                    "text": "Tab"
                  }
                }
              ],
              "description": "Get the previous tab button in the tab group"
            },
            {
              "kind": "method",
              "name": "handleKeydown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Handle keyboard accessible controls."
            },
            {
              "kind": "method",
              "name": "updateSelectedTab",
              "privacy": "private",
              "parameters": [
                {
                  "name": "selectedTab",
                  "type": {
                    "text": "Tab"
                  }
                }
              ],
              "description": "Update the selected tab button with attributes and values.\nUpdate the tab group state."
            }
          ],
          "attributes": [
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Adds an accessible label to the tab list container.",
              "fieldName": "label"
            },
            {
              "name": "padding",
              "type": {
                "text": "'m' | 'l' | 'none' | undefined"
              },
              "default": "'m'",
              "description": "Controls the padding of the tab group component.",
              "fieldName": "padding"
            },
            {
              "name": "sticky",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Whether the tab list sticks to the top of the tab group as you scroll.",
              "fieldName": "sticky"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "navigation",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to allow multiple panels to be contained within a single window.\n- Use the tab panel and tab components within the tab group component.\n- Use the tab and tab panel components in order to create a tab group content structure.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use tabs to navigate to other pages. Use navigation or links instead.\n- Don't use other components to the tab and tab panel within the tab group component.\n- Don't obscure important information within a tab panel that isn't revealed by default.\n- Don't add a tab or tab panel component without providing an accompanying panel or tab.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing tab labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in tab labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">The dashboard</div>\n\nAvoid ending tab labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Patients</div>\n<div class=\"n-usage n-usage-dont\">Patients.</div>\n\nUse as few words as possible to describe each tab label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoid all caps for tab labels:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n\n---\n\n## Additional considerations\n\n- If the content contained within the tabs UI has significance or is important for the user to see, consider using a different form of presentation that doesn't obscure it.\n- If there is a particular tab panel you wish to show out of order of the tabs UI itself consider using the `selected` option on the tab component related to the panel to select the tab but prevent the order of the tabs being affected.\n",
          "examples": [],
          "dependencies": [
            "tab"
          ],
          "tagName": "nord-tab-group",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "TabGroup",
            "module": "src/tab-group/TabGroup.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-tab-group",
          "declaration": {
            "name": "TabGroup",
            "module": "src/tab-group/TabGroup.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tab-panel/TabPanel.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Tab Panel', component: 'nord-tab-panel', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: {}, render: () => html` <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt amet ipsam enim sed sequi voluptatibus, culpa explicabo voluptate maxime a, cumque ea reprehenderit ad consequuntur veniam? Fuga impedit iste tenetur. </p> </nord-tab-panel> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-tab-panel> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt amet ipsam enim sed sequi voluptatibus, culpa explicabo voluptate maxime a, cumque ea reprehenderit ad consequuntur veniam? Fuga impedit iste tenetur. </p> </nord-tab-panel> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/tab-panel/TabPanel.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/tab-panel/TabPanel.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/tab-panel/TabPanel.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tab-panel/TabPanel.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "The panel which contains content that can be revealed using a tab\nin the tab group component.",
          "name": "TabPanel",
          "slots": [
            {
              "description": "The tab panel content.",
              "name": ""
            }
          ],
          "members": [],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "navigation",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use the tab panel component within the tab group component.\n- Use both non-interactive and interactive elements within the contents of the tab panel.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don't use the tab panel component outside of the tab group component.\n- Don't obscure important information within a tab panel that isn't revealed by default.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing tab labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in tab labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">The dashboard</div>\n\nAvoid ending tab labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Patients</div>\n<div class=\"n-usage n-usage-dont\">Patients.</div>\n\nUse as few words as possible to describe each tab label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoid all caps for tab labels:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n\n---\n\n## Additional considerations\n\n- If the content contained within the tabs UI has significance or is important for the user to see, consider using a different form of presentation that doesn't obscure it.\n- If there is a particular tab panel you wish to show out of order of the tabs UI itself consider using the `selected` option on the related tab component to select the tab but prevent the order of the tabs being affected.\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-tab-panel",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "TabPanel",
            "module": "src/tab-panel/TabPanel.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-tab-panel",
          "declaration": {
            "name": "TabPanel",
            "module": "src/tab-panel/TabPanel.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/table/Table.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Table', component: 'nord-table', tags: ['autodocs'], argTypes: { density: { control: 'select', options: ['condensed', 'default', 'relaxed'], }, scrollSnap: { control: 'boolean' }, striped: { control: 'boolean' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { density: 'default', scrollSnap: false, striped: false, }, render: args => html` <nord-table density=${args.density} ?scroll-snap=${args.scrollSnap} ?striped=${args.striped}><table>\\n <thead><tr><th>Name</th><th>Value</th></tr></thead>\\n <tbody><tr><td>Item</td><td>100</td></tr></tbody>\\n </table></nord-table> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-table> <table> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Description</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">20.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">19.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">18.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">290,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">17.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">49,90&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">16.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">25,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">15.3.2021</td> </tr> </tbody> </table> </nord-table> `, }"
        },
        {
          "kind": "variable",
          "name": "ColumnStyling",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-table> <table> <colgroup> <col /> <col /> <col /> <col class=\"n-color-status-danger-weak\" style=\"inline-size: max-content\" /> </colgroup> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Status</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">20.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">20.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">19.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">17.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td><nord-badge variant=\"danger\">Alert</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">12.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">10.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">9.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">4.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">4.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">3.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">1.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">30.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">30.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">30.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">28.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">28.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">26.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td><nord-badge variant=\"danger\">Alert</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">24.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">23.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">22.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">21.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">20.2.2021</td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td>Card</td> <td class=\"n-table-align-right\">18.2.2021</td> </tr> </tbody> </table> </nord-table> `, }"
        },
        {
          "kind": "variable",
          "name": "Complex",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-table> <table> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Status</th> <th>Description</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> <th class=\"n-table-align-right\">Actions</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge>Neutral</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">19.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">17.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td><nord-badge variant=\"info\">Info</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">12.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">10.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">9.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td><nord-badge variant=\"highlight\">Highlight</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">4.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">3.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">1.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">30.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">28.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">26.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">1023,00&thinsp;€</td> <td><nord-badge variant=\"danger\">Alert</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">24.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">32,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">23.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">40,00&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">22.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">28,52&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">21.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">220,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">18.2.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> </tbody> </table> </nord-table> `, }"
        },
        {
          "kind": "variable",
          "name": "Density",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-card padding=\"none\"> <h2 slot=\"header\">Condensed</h2> <nord-table density=\"condensed\"> <table> <thead> <tr> <th>Amount</th> <th>Description</th> <th>Method</th> <th>Date</th> </tr> </thead> <tbody> <tr> <td>350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td>20.3.2021</td> </tr> <tr> <td>350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td>20.3.2021</td> </tr> <tr> <td>350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td>20.3.2021</td> </tr> </tbody> </table> </nord-table> </nord-card> <nord-card padding=\"none\"> <h2 slot=\"header\">Default</h2> <nord-table> <table> <thead> <tr> <th>Amount</th> <th>Description</th> <th>Method</th> <th>Date</th> </tr> </thead> <tbody> <tr> <td>350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td>20.3.2021</td> </tr> <tr> <td>350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td>20.3.2021</td> </tr> <tr> <td>350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td>20.3.2021</td> </tr> </tbody> </table> </nord-table> </nord-card> <nord-card padding=\"none\"> <h2 slot=\"header\">Relaxed</h2> <nord-table density=\"relaxed\"> <table> <thead> <tr> <th>Amount</th> <th>Description</th> <th>Method</th> <th>Date</th> </tr> </thead> <tbody> <tr> <td>350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td>20.3.2021</td> </tr> <tr> <td>350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td>20.3.2021</td> </tr> <tr> <td>350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td>20.3.2021</td> </tr> </tbody> </table> </nord-table> </nord-card> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "RowSelection",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-card padding=\"none\" class=\"n-container\"> <h2 slot=\"header\">Row selection</h2> <div slot=\"header-end\" style=\"visibility: hidden\"> <span class=\"message\" aria-live=\"polite\" aria-atomic=\"true\">0 items selected</span> <nord-button variant=\"primary\" size=\"s\">Export</nord-button> </div> <nord-table> <table> <thead> <tr> <th> <div class=\"n-table-actions\"> <nord-checkbox size=\"s\" label=\"Toggle all\" hide-label></nord-checkbox> </div> </th> <th class=\"n-table-align-right\">Amount</th> <th>Status</th> <th>Description</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> <th class=\"n-table-align-right\">Actions</th> </tr> </thead> <tbody> <tr> <td> <div class=\"n-table-actions\"> <nord-checkbox size=\"s\" label=\"Select row\" hide-label></nord-checkbox> </div> </td> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td> <nord-badge variant=\"success\">Success</nord-badge> </td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td> <div class=\"n-table-actions\"> <nord-checkbox size=\"s\" label=\"Select row\" hide-label></nord-checkbox> </div> </td> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td> <nord-badge variant=\"warning\">Warning</nord-badge> </td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td> <div class=\"n-table-actions\"> <nord-checkbox size=\"s\" label=\"Select row\" hide-label></nord-checkbox> </div> </td> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td> <nord-badge variant=\"success\">Success</nord-badge> </td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">19.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td> <div class=\"n-table-actions\"> <nord-checkbox size=\"s\" label=\"Select row\" hide-label></nord-checkbox> </div> </td> <td class=\"n-table-align-right\">49,00&thinsp;€</td> <td> <nord-badge variant=\"success\">Success</nord-badge> </td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption n-table-align-right\">17.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> </tbody> </table> </nord-table> </nord-card>` const { tHead, tBodies: [tBody], } = container.querySelector('table') const checkboxes = tBody.querySelectorAll('nord-checkbox') const toggleAll = tHead.querySelector('nord-checkbox') const actions = container.querySelector('[slot=header-end]') const button = actions.querySelector('nord-button') const message = actions.querySelector('.message') function render() { let count = 0 checkboxes.forEach((checkbox) => { checkbox.closest('tr').classList.toggle('n-row-selected', checkbox.checked) if (checkbox.checked) count++ }) toggleAll.indeterminate = count > 0 && count < checkboxes.length toggleAll.checked = count === checkboxes.length message.innerText = `${count} ${count === 1 ? 'item' : 'items'} selected` actions.style.visibility = count === 0 ? 'hidden' : 'visible' } tBody.addEventListener('change', render) toggleAll.addEventListener('change', () => { checkboxes.forEach(checkbox => (checkbox.checked = toggleAll.checked)) render() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "ScrollSnapping",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-table scroll-snap class=\"n-container-s\"> <table> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Status</th> <th>Description</th> <th>Method</th> <th>Some</th> <th>More</th> <th>Columns</th> <th class=\"n-table-align-right\">Date</th> <th class=\"n-table-align-right\">Actions</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption\">Lorem ipsum dolor sit amet consectetur adipisicing</td> <td class=\"n-caption\">Aspernatur expedita temporibus, in nisi aut quam neque consequatur tempora dolor</td> <td class=\"n-caption\">Eveniet, alias dolore molestias debitis iure quaerat iusto illo possimus.</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon size=\"s\" name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td><nord-badge variant=\"warning\">Warning</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption\">Lorem ipsum dolor sit amet consectetur adipisicing</td> <td class=\"n-caption\">Aspernatur expedita temporibus, in nisi aut quam neque consequatur tempora dolor</td> <td class=\"n-caption\">Eveniet, alias dolore molestias debitis iure quaerat iusto illo possimus.</td> <td class=\"n-caption n-table-align-right\">20.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon size=\"s\" name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td><nord-badge variant=\"success\">Success</nord-badge></td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td class=\"n-caption\">Card</td> <td class=\"n-caption\">Lorem ipsum dolor sit amet consectetur adipisicing</td> <td class=\"n-caption\">Aspernatur expedita temporibus, in nisi aut quam neque consequatur tempora dolor</td> <td class=\"n-caption\">Eveniet, alias dolore molestias debitis iure quaerat iusto illo possimus.</td> <td class=\"n-caption n-table-align-right\">19.3.2021</td> <td> <div class=\"n-table-actions\"> <nord-button size=\"s\" square> <nord-visually-hidden>Actions</nord-visually-hidden> <nord-icon size=\"s\" name=\"interface-menu-small\"></nord-icon> </nord-button> </div> </td> </tr> </tbody> </table> </nord-table> `, }"
        },
        {
          "kind": "variable",
          "name": "Striped",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-table striped> <table> <thead> <tr> <th class=\"n-table-align-right\">Amount</th> <th>Description</th> <th>Method</th> <th class=\"n-table-align-right\">Date</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-align-right\">350,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">20.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">29,90&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">19.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">50,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">18.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">290,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">17.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">49,90&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">16.3.2021</td> </tr> <tr> <td class=\"n-table-align-right\">25,00&thinsp;€</td> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td>Card</td> <td class=\"n-table-align-right\">15.3.2021</td> </tr> </tbody> </table> </nord-table> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/table/Table.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/table/Table.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/table/Table.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ColumnStyling",
          "declaration": {
            "name": "ColumnStyling",
            "module": "src/table/Table.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Complex",
          "declaration": {
            "name": "Complex",
            "module": "src/table/Table.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Density",
          "declaration": {
            "name": "Density",
            "module": "src/table/Table.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "RowSelection",
          "declaration": {
            "name": "RowSelection",
            "module": "src/table/Table.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ScrollSnapping",
          "declaration": {
            "name": "ScrollSnapping",
            "module": "src/table/Table.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Striped",
          "declaration": {
            "name": "Striped",
            "module": "src/table/Table.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/table/Table.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Table is used to organize and display information from a data set.\nProvides table styles in addition to features like sticky\nheaders and support for narrow viewports.",
          "name": "Table",
          "cssProperties": [
            {
              "description": "Controls the padding around the table cells.",
              "name": "--n-table-td-padding",
              "default": "calc(var(--n-space-m) * 0.95)"
            },
            {
              "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
              "name": "--n-table-border-radius",
              "default": "var(--n-border-radius-s)"
            }
          ],
          "slots": [
            {
              "description": "Default slot which holds the HTML `<table>` element.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "'condensed' | 'default' | 'relaxed'"
              },
              "default": "'default'",
              "description": "Controls the density of the table's rows and headers.\nRelaxed increases space, condensed reduces space.",
              "attribute": "density",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "scrollSnap",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Enables scroll-snapping, meaning the scroll position is always column-aligned.",
              "attribute": "scroll-snap",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "striped",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether to use zebra striping on tables, which can improve readability.",
              "attribute": "striped",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "renderStyles",
              "privacy": "private",
              "description": "renders table styles into nearest root.\nthis is necessary since we do not use shadow dom."
            }
          ],
          "attributes": [
            {
              "name": "density",
              "type": {
                "text": "'condensed' | 'default' | 'relaxed'"
              },
              "default": "'default'",
              "description": "Controls the density of the table's rows and headers.\nRelaxed increases space, condensed reduces space.",
              "fieldName": "density"
            },
            {
              "name": "scroll-snap",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Enables scroll-snapping, meaning the scroll position is always column-aligned.",
              "fieldName": "scrollSnap"
            },
            {
              "name": "striped",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether to use zebra striping on tables, which can improve readability.",
              "fieldName": "striped"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "list",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when you need to display tabular data in a view.\n- Use a `<table>` element directly within the component.\n- Use inside a [Card](/components/card/?example=with+table), and give the card a header.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use to display list data.\n- Don’t use to display basic key and value pairs, consider a [description list](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl) instead.\n- Don’t use tables for layout.\n- Don't use a primary button in every row of a table.\n\n</div>\n\n---\n\n## Content guidelines\n\nHeaders in a table should be clear, accurate and predictable. When writing headers, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">User account</div>\n<div class=\"n-usage n-usage-dont\">User Account</div>\n\nInclude units of measurement symbols in the table header so they aren’t repeated throughout every single column:\n\n<div class=\"n-usage n-usage-do\">Temperature °C</div>\n<div class=\"n-usage n-usage-dont\">Temperature</div>\n\nAvoid unnecessary words and articles in table headers, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Description</div>\n<div class=\"n-usage n-usage-dont\">A description</div>\n\nKeep decimals consistent. For example, don’t use 3 decimals in one row and 2 in others:\n\n<div class=\"n-usage n-usage-do\">30.00<br/>25.00</div>\n<div class=\"n-usage n-usage-dont\">30.000<br/>25.0</div>\n\n---\n\n## Additional considerations\n\n- Nord’s table component acts as a lightweight and un-opinionated _wrapper_ component for enhancing tabular data. It is up to the user of this component to make sure that the table markup they use is accessible.\n- Despite the name the Nord table component does not supplement the HTML `<table>` element. Please ensure that a `<table>` element is a direct descendant of the table component.\n- It’s important to pay close attention to semantics when authoring tables. The markup in the examples can be used as a starting point. However, be aware that [HTML tables have a large feature set](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table) which cannot be fully covered in this documentation.\n- When making adjustments to table columns such as width, color, alignment and other styles please consider using the HTML `<col>` and `<colgroup>` elements for applying them. Further information on the `<col>` and `<colgroup>` elements can be [found in the MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col).\n\n---\n\n## Advanced use-cases\n\nThe table component itself does not provide any functionality, only styles. This works well for simple or static tables, but there are instances where functionality such as sorting, resizing, or column dragging are required. This kind of functionality is out of scope for the table component, as the spectrum of possible use-cases is too broad for a single component to cover effectively. Whilst the table component is limited out of the box, these same limitations make it easy to integrate with third-party libraries which offer advanced functionality.\n\nBroadly speaking, there are two categories of library for building advanced tables: _headless_ and _component-based_.\n\n### Which kind of table library should I use?\n\nEach approach has subtle tradeoffs. Understanding these subtleties will help you make the right decision for your application and team.\n\n#### Component-based Table Libraries\n\nComponent-based table libraries will typically supply you with a feature-rich drop-in solution, and ready-to-use components/markup complete with styles/theming.\n\n**Pros:**\n\n- Ship with ready-to-use markup/styles.\n- Little setup required.\n- Turn-key experience.\n\n**Cons:**\n\n- Less control over markup.\n- Custom styles are typically theme-based.\n- Larger bundle-sizes.\n\nIf you want a ready-to-use table and design/bundle-size are not hard requirements, then you should consider using a component-based table library.\n\n#### Headless Table Libraries\n\nHeadless table libraries will typically supply you with functions, state, utilities and event listeners to build your own table markup or attach to existing table markups.\n\n**Pros:**\n\n- Full control over markup and styles.\n- Supports all styling patterns (CSS, CSS-in-JS, UI libraries, etc).\n- Smaller bundle-sizes.\n\n**Cons:**\n\n- More setup and effort required.\n- No markup, styles or themes provided.\n\nIf you want a lighter-weight table or full control over the design, then you should consider using a headless table library.\n\n### Recommendation for headless libraries\n\nIn the headless category, we recommend [Tanstack Table](https://tanstack.com/table/). Tanstack table offers integrations for many UI frameworks, such as Vue and React. It is easy to work with, and because it does not bring any HTML or styles itself, you can use it to render a plain, semantic `<table>` wrapped in a `<nord-table>`, and you will get all the necessary styles.\n\nWe have created examples in both Vue and React, showing how to combine Tanstack table with Nord's table component, in order to build a table with both sorting and resizable columns. Check out the [React example](/components/table/?example=with+react+and+tanstack+table) and likewise the [Vue example](/components/table/?example=with+vue+and+tanstack+table).\n\n<nord-stack direction=\"horizontal\" class=\"n:my-l\">\n  <nord-button href=\"https://github.com/nordhealth/advanced-table-examples/tree/main/nord-react-tanstack-table\" target=\"_blank\">\n    <nord-icon name=\"generic-github\" size=\"s\" slot=\"start\"></nord-icon>\n    React / Tanstack table source\n  </nord-button>\n  <nord-button href=\"https://github.com/nordhealth/advanced-table-examples/tree/main/nord-vue-tanstack-table\" target=\"_blank\">\n    <nord-icon name=\"generic-github\" size=\"s\" slot=\"start\"></nord-icon>\n    Vue / Tanstack table source\n  </nord-button>\n</nord-stack>\n\n### Recommendation for component-based libraries\n\nIn the component-based category, we recommend [AG Grid](https://www.ag-grid.com/), specifically the community edition. AG Grid is feature-rich, has extensive documentation, and offers integrations for many UI frameworks, such as Vue and React. AG Grid takes control of all rendering and output, but offers extension points for taking control of some aspects. It does not output a `<table>` element, so it cannot be used with Nord's own table component.\n\nHowever it can be styled via themes, and we have created a Nord theme using our design tokens. The theme is published on npm as `@nordhealth/ag-theme-nord`. To use the theme, include the CSS in your project and add the class `ag-theme-nord` to the element wrapping AG Grid. You have to [configure legacy themes](https://www.ag-grid.com/javascript-data-grid/theming-migration/#continue-with-legacy-themes) if you are using v33 or higher.\n\nWe have created examples in both Vue and React showing how to combine AG Grid with Nord's theme, in order to build a table with sorting, resizable columns, draggable and re-orderable columns, plus sticky/pinned columns. Check out the [React example](/components/table/?example=with+react+and+ag+grid) and likewise the [Vue example](/components/table/?example=with+vue+and+ag+grid).\n\n<nord-stack direction=\"horizontal\" class=\"n:my-l\">\n  <nord-button href=\"https://github.com/nordhealth/advanced-table-examples/tree/main/nord-react-ag-grid\" target=\"_blank\">\n    <nord-icon name=\"generic-github\" size=\"s\" slot=\"start\"></nord-icon>\n    React / AG Grid table source\n  </nord-button>\n  <nord-button href=\"https://github.com/nordhealth/advanced-table-examples/tree/main/nord-vue-ag-grid\" target=\"_blank\">\n    <nord-icon name=\"generic-github\" size=\"s\" slot=\"start\"></nord-icon>\n    Vue / AG Grid table source\n  </nord-button>\n</nord-stack>\n",
          "examples": [
            {
              "url": "https://stackblitz.com/github/nordhealth/advanced-table-examples/tree/main/nord-react-tanstack-table?embed=1&file=src/DataTable/DataTable.tsx&hideNavigation=1&view=preview",
              "name": "with react and tanstack table"
            },
            {
              "url": "https://stackblitz.com/github/nordhealth/advanced-table-examples/tree/main/nord-react-ag-grid?embed=1&file=src/DataTable/DataTable.tsx&hideNavigation=1&view=preview",
              "name": "with react and ag grid"
            },
            {
              "url": "https://stackblitz.com/github/nordhealth/advanced-table-examples/tree/main/nord-vue-tanstack-table?embed=1&file=src/components/DataTable/DataTable.vue&hideNavigation=1&view=preview",
              "name": "with vue and tanstack table"
            },
            {
              "url": "https://stackblitz.com/github/nordhealth/advanced-table-examples/tree/main/nord-vue-ag-grid?embed=1&file=src/components/DataTable/DataTable.vue&hideNavigation=1&view=preview",
              "name": "with vue and ag grid"
            }
          ],
          "dependencies": [],
          "tagName": "nord-table",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Table",
            "module": "src/table/Table.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-table",
          "declaration": {
            "name": "Table",
            "module": "src/table/Table.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tag/Tag.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Tag', component: 'nord-tag', tags: ['autodocs'], argTypes: { variant: { control: 'select', options: ['default', 'removable', 'selectable'], }, checked: { control: 'boolean' }, size: { control: 'select', options: ['s', 'm'], }, expand: { control: 'boolean' }, disabled: { control: 'boolean' }, name: { control: 'text' }, value: { control: 'text' }, content: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { content: 'Tag', variant: 'default', checked: false, size: 'm', expand: false, disabled: false, }, render: args => html` <nord-tag variant=${args.variant} ?checked=${args.checked} size=${args.size} ?expand=${args.expand} ?disabled=${args.disabled} name=${args.name || nothing} value=${args.value || nothing}>${args.content}</nord-tag> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-tag>May bite</nord-tag> <nord-tag>Has seizures</nord-tag> <nord-tag>Service dog</nord-tag> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-tag variant=\"removable\" disabled>May bite</nord-tag> <nord-tag variant=\"selectable\" disabled>Has seizures</nord-tag> <nord-tag variant=\"selectable\" disabled checked>Service dog</nord-tag> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Expanded",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack direction=\"vertical\" gap=\"s\" style=\"max-inline-size: 200px\"> <nord-tag variant=\"selectable\" expand>May bite</nord-tag> <nord-tag variant=\"removable\" expand>Has seizures</nord-tag> <nord-tag expand>Service dog</nord-tag> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Removable",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-tag-group variant=\"spaced\" wrap> <nord-tag variant=\"removable\">May bite</nord-tag> <nord-tag variant=\"removable\">Has seizures</nord-tag> <nord-tag variant=\"removable\">Service dog</nord-tag> </nord-tag-group>` const tagGroup = container.querySelector('nord-tag-group') tagGroup.addEventListener('remove', (event) => { event.target.remove() }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "SelectableInsideForm",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <form action=\"#\"> <nord-stack> <nord-fieldset label=\"Tags\"> <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-tag name=\"may-bite\" variant=\"selectable\" value=\"selected\">May bite</nord-tag> <nord-tag name=\"has-seizures\" variant=\"selectable\">Has seizures</nord-tag> <nord-tag name=\"service-dog\" variant=\"selectable\" checked>Service dog</nord-tag> </nord-stack> </nord-fieldset> <nord-button variant=\"primary\" type=\"submit\">Submit</nord-button> </nord-stack> </form> `, }"
        },
        {
          "kind": "variable",
          "name": "Selectable",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-tag variant=\"selectable\">May bite</nord-tag> <nord-tag variant=\"selectable\">Has seizures</nord-tag> <nord-tag variant=\"selectable\" checked>Service dog</nord-tag> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "SmallSize",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" wrap> <nord-tag variant=\"selectable\" size=\"s\" checked>Service dog</nord-tag> <nord-tag variant=\"removable\" size=\"s\">Has seizures</nord-tag> <nord-tag size=\"s\">Service dog</nord-tag> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/tag/Tag.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/tag/Tag.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/tag/Tag.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/tag/Tag.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Expanded",
          "declaration": {
            "name": "Expanded",
            "module": "src/tag/Tag.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Removable",
          "declaration": {
            "name": "Removable",
            "module": "src/tag/Tag.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "SelectableInsideForm",
          "declaration": {
            "name": "SelectableInsideForm",
            "module": "src/tag/Tag.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Selectable",
          "declaration": {
            "name": "Selectable",
            "module": "src/tag/Tag.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "SmallSize",
          "declaration": {
            "name": "SmallSize",
            "module": "src/tag/Tag.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tag/Tag.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Tags represent a set of keywords that help label, categorize,\nand organize objects. Commonly used to signify the attributes of an object.",
          "name": "Tag",
          "slots": [
            {
              "description": "The tag content.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "localize",
              "privacy": "private",
              "default": "new LocalizeController<'nord-tag'>(this)"
            },
            {
              "kind": "field",
              "name": "formData",
              "privacy": "protected",
              "default": "new FormDataController(this, { value: () => this.formValue })"
            },
            {
              "kind": "field",
              "name": "formValue",
              "privacy": "protected",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'input'"
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "'default' | 'removable' | 'selectable'"
              },
              "default": "'default'",
              "description": "The behavioral variant of the tag.",
              "attribute": "variant",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the tag is checked or not (only relevant when variant is set to `selectable`).",
              "attribute": "checked",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm'"
              },
              "default": "'m'",
              "description": "The size of the tag. This affects the font-size.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the tag expands to fill the width of its container.",
              "attribute": "expand",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleRemove",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "renderStaticTag",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderRemovableTag",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderSelectableTag",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "events": [
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the tag has been checked or unchecked via user interaction."
            },
            {
              "name": "remove",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired when the remove button is activated. This event should be used to remove the tag from the DOM."
            }
          ],
          "attributes": [
            {
              "name": "variant",
              "type": {
                "text": "'default' | 'removable' | 'selectable'"
              },
              "default": "'default'",
              "description": "The behavioral variant of the tag.",
              "fieldName": "variant"
            },
            {
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the tag is checked or not (only relevant when variant is set to `selectable`).",
              "fieldName": "checked"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm'"
              },
              "default": "'m'",
              "description": "The size of the tag. This affects the font-size.",
              "fieldName": "size"
            },
            {
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the tag expands to fill the width of its container.",
              "fieldName": "expand"
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [
            {
              "name": "removeLabel",
              "description": "Accessible label for the remove button."
            }
          ],
          "status": "new",
          "category": "text",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use for labeling, categorizing, or organizing objects.\n- Ensure there is enough space around tags when they are interactive.\n- Always position tags so that it’s easy to understand what object they’re related to.\n- Keep in mind that tags can increase the amount of cognitive noise, particularly when combined with the status component, so use them in moderation.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for showing the status of an object, use the [badge component](/components/badge/) instead.\n- Don’t use when you want to highlight something that has been added recently, use the [badge component](/components/badge/) instead.\n- Don’t use alternatives to existing tag variants.\n\n</div>\n\n---\n\n## Content guidelines\n\nTags should use short and clear labels for easy scanning. They should be concise and informative:\n\n<div class=\"n-usage n-usage-do\">Has seizures</div>\n<div class=\"n-usage n-usage-dont\">This dog has seizures often</div>\n\nWhen writing tag labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Service dog</div>\n<div class=\"n-usage n-usage-dont\">Service Dog</div>\n\nAvoid unnecessary words and articles in tag labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Service dog</div>\n<div class=\"n-usage n-usage-dont\">A service dog</div>\n\n---\n\n## Variants\n\nThis section describes the different component variants, their purpose, and when to use each variant.\n\n| Name         | Purpose                                           |\n| ------------ | ------------------------------------------------- |\n| `default`    | The default variant for a non-interactive tag.    |\n| `removable`  | Used for tags that can be removed by the user.    |\n| `selectable` | Used for tags that can be selected or deselected. |\n",
          "examples": [],
          "dependencies": [
            "icon"
          ],
          "tagName": "nord-tag",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Tag",
            "module": "src/tag/Tag.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-tag",
          "declaration": {
            "name": "Tag",
            "module": "src/tag/Tag.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tag/localization.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "localization",
          "type": {
            "text": "object"
          },
          "default": "{ removeLabel: 'Remove', }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "localization",
            "module": "src/tag/localization.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tag-group/TagGroup.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Tag Group', component: 'nord-tag-group', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { variant: 'default', direction: 'horizontal', wrap: false, }, render: ({ variant, direction, wrap }) => html` <nord-visually-hidden id=\"label\">Category</nord-visually-hidden> <nord-tag-group aria-labelledby=\"label\" variant=\"${variant}\" direction=\"${direction}\" ?wrap=\"${wrap}\"> <nord-tag variant=\"selectable\">Canine</nord-tag> <nord-tag variant=\"selectable\">Feline</nord-tag> <nord-tag variant=\"selectable\" checked>Rodents</nord-tag> </nord-tag-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-visually-hidden id=\"label\">Category</nord-visually-hidden> <nord-tag-group aria-labelledby=\"label\"> <nord-tag variant=\"selectable\">Canine</nord-tag> <nord-tag variant=\"selectable\">Feline</nord-tag> <nord-tag variant=\"selectable\" checked>Rodents</nord-tag> </nord-tag-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Direction",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"start\"> <nord-visually-hidden id=\"label\">Category</nord-visually-hidden> <nord-tag-group aria-labelledby=\"label\"> <nord-tag variant=\"selectable\">Canine</nord-tag> <nord-tag variant=\"selectable\">Feline</nord-tag> <nord-tag variant=\"selectable\" checked>Rodents</nord-tag> </nord-tag-group> <nord-visually-hidden id=\"label\">Category</nord-visually-hidden> <nord-tag-group aria-labelledby=\"label\" direction=\"vertical\"> <nord-tag expand variant=\"selectable\">Canine</nord-tag> <nord-tag expand variant=\"selectable\">Feline</nord-tag> <nord-tag expand variant=\"selectable\" checked>Rodents</nord-tag> </nord-tag-group> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Single",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<!-- When you start out with one tag, but conditionally add more --> <nord-stack> <nord-visually-hidden id=\"label\">Category</nord-visually-hidden> <nord-tag-group aria-labelledby=\"label\"> <nord-tag variant=\"selectable\">Canine</nord-tag> </nord-tag-group> <nord-button id=\"add-tag\" size=\"s\">Add tag to group</nord-button> </nord-stack>` container.querySelector('#add-tag').addEventListener('click', () => { const tagGroup = container.querySelector('nord-tag-group') const tag = document.createElement('nord-tag') tag.setAttribute('variant', 'selectable') tag.textContent = 'Feline' tagGroup.appendChild(tag) }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "SmallTags",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-visually-hidden id=\"label\">Category</nord-visually-hidden> <nord-tag-group aria-labelledby=\"label\"> <nord-tag variant=\"selectable\" size=\"s\">Canine</nord-tag> <nord-tag variant=\"selectable\" size=\"s\">Feline</nord-tag> <nord-tag variant=\"selectable\" size=\"s\" checked>Rodents</nord-tag> </nord-tag-group> `, }"
        },
        {
          "kind": "variable",
          "name": "Spaced",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-visually-hidden id=\"label\">Category</nord-visually-hidden> <nord-tag-group variant=\"spaced\" aria-labelledby=\"label\"> <nord-tag variant=\"selectable\">Canine</nord-tag> <nord-tag variant=\"selectable\">Feline</nord-tag> <nord-tag variant=\"selectable\" checked>Rodents</nord-tag> </nord-tag-group> `, }"
        },
        {
          "kind": "variable",
          "name": "WithVisualLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\" direction=\"horizontal\" align-items=\"center\" wrap> <label id=\"label\" class=\"n-font-size-s\">Category</label> <nord-tag-group aria-labelledby=\"label\"> <nord-tag size=\"s\" variant=\"selectable\">Canine</nord-tag> <nord-tag size=\"s\" variant=\"selectable\">Feline</nord-tag> <nord-tag size=\"s\" variant=\"selectable\" checked>Rodents</nord-tag> </nord-tag-group> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/tag-group/TagGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/tag-group/TagGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/tag-group/TagGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Direction",
          "declaration": {
            "name": "Direction",
            "module": "src/tag-group/TagGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Single",
          "declaration": {
            "name": "Single",
            "module": "src/tag-group/TagGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "SmallTags",
          "declaration": {
            "name": "SmallTags",
            "module": "src/tag-group/TagGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Spaced",
          "declaration": {
            "name": "Spaced",
            "module": "src/tag-group/TagGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithVisualLabel",
          "declaration": {
            "name": "WithVisualLabel",
            "module": "src/tag-group/TagGroup.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tag-group/TagGroup.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Tag groups are designed to bring together selectable tags that are of a similar nature. For example categories you can filter by.",
          "name": "TagGroup",
          "cssProperties": [
            {
              "description": "Controls the rounded corners of the tag group, using [border radius tokens](/tokens/#border-radius). Only relevant for the default variant.",
              "name": "--n-tag-group-border-radius",
              "default": "var(--n-border-radius-s)"
            },
            {
              "description": "Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow). Only relevant for the default variant.",
              "name": "--n-tag-group-box-shadow",
              "default": "var(--n-box-shadow)"
            }
          ],
          "slots": [
            {
              "description": "The tag group content",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "defaultSlot",
              "privacy": "private",
              "default": "new SlotController(this)"
            },
            {
              "kind": "field",
              "name": "dirController",
              "privacy": "private",
              "default": "new DirectionController(this)"
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "'default' | 'spaced'"
              },
              "default": "'default'",
              "description": "The style variant of the tag group.",
              "attribute": "variant",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "direction",
              "type": {
                "text": "'vertical' | 'horizontal'"
              },
              "default": "'horizontal'",
              "description": "The direction of the tag group.",
              "attribute": "direction",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "wrap",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Defines whether the tags are forced in a single line\nor can be flowed into multiple lines (only applied when variant is set to `spaced`).",
              "attribute": "wrap",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "role",
              "type": {
                "text": "string"
              },
              "default": "'group'",
              "description": "The appropriate role for the containing element.",
              "attribute": "role",
              "reflects": true
            }
          ],
          "events": [
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever a tag has been checked or unchecked via user interaction.",
              "name": "change"
            },
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired when the remove button is activated on a tag. This event should be used to remove the tag from the DOM.",
              "name": "remove"
            }
          ],
          "attributes": [
            {
              "name": "variant",
              "type": {
                "text": "'default' | 'spaced'"
              },
              "default": "'default'",
              "description": "The style variant of the tag group.",
              "fieldName": "variant"
            },
            {
              "name": "direction",
              "type": {
                "text": "'vertical' | 'horizontal'"
              },
              "default": "'horizontal'",
              "description": "The direction of the tag group.",
              "fieldName": "direction"
            },
            {
              "name": "wrap",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Defines whether the tags are forced in a single line\nor can be flowed into multiple lines (only applied when variant is set to `spaced`).",
              "fieldName": "wrap"
            },
            {
              "name": "role",
              "type": {
                "text": "string"
              },
              "default": "'group'",
              "description": "The appropriate role for the containing element.",
              "fieldName": "role"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "new",
          "category": "structure",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to group together selectable tags.\n- Use the appropriate `role` attribute on the tag group to provide additional semantics.\n- Use an `aria-labelledby` attribute referencing another element to best explain the contents of the tag group.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t add components other than selectable tags and in some instances visually hidden components to the tag group.\n- Don’t skip the addition of an appropriate label if the added `role` attribute value calls for it.\n- Don’t use for building grid based layouts.\n\n</div>\n\n---\n\n## Content guidelines\n\nTags should use short and clear labels for easy scanning. They should be concise and informative:\n\n<div class=\"n-usage n-usage-do\">Has seizures</div>\n<div class=\"n-usage n-usage-dont\">This dog has seizures often</div>\n\nWhen writing tag labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Service dog</div>\n<div class=\"n-usage n-usage-dont\">Service Dog</div>\n\nAvoid unnecessary words and articles in tag labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Service dog</div>\n<div class=\"n-usage n-usage-dont\">A service dog</div>\n\n---\n\n## Variants\n\nThis section describes the different component variants, their purpose, and when to use each variant.\n\n| Name      | Purpose                                                                                     |\n| --------- | ------------------------------------------------------------------------------------------- |\n| `default` | The default variant renders a group of tags to emphasize that they’re thematically-related. |\n| `spaced`  | The spaced variant renders a gap between the tags to space them out evenly.                 |\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-tag-group",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "TagGroup",
            "module": "src/tag-group/TagGroup.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-tag-group",
          "declaration": {
            "name": "TagGroup",
            "module": "src/tag-group/TagGroup.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/textarea/Textarea.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Textarea', component: 'nord-textarea', tags: ['autodocs'], argTypes: { resize: { control: 'select', options: ['vertical', 'auto'], }, expand: { control: 'boolean' }, maxlength: { control: 'text' }, characterCounter: { control: 'boolean' }, size: { control: 'select', options: ['s', 'm', 'l'], }, label: { control: 'text' }, hint: { control: 'text' }, hideLabel: { control: 'boolean' }, placeholder: { control: 'text' }, error: { control: 'text' }, required: { control: 'boolean' }, hideRequired: { control: 'boolean' }, autocomplete: { control: 'text' }, readonly: { control: 'boolean' }, disabled: { control: 'boolean' }, name: { control: 'text' }, value: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { resize: 'vertical', expand: false, characterCounter: false, size: 'm', hideLabel: false, required: false, hideRequired: false, autocomplete: 'off', readonly: false, disabled: false, }, render: args => html` <nord-textarea resize=${args.resize} ?expand=${args.expand} maxlength=${args.maxlength || nothing} ?character-counter=${args.characterCounter} size=${args.size} label=${args.label || nothing} hint=${args.hint || nothing} ?hide-label=${args.hideLabel} placeholder=${args.placeholder || nothing} error=${args.error || nothing} ?required=${args.required} ?hide-required=${args.hideRequired} autocomplete=${args.autocomplete || nothing} ?readonly=${args.readonly} ?disabled=${args.disabled} name=${args.name || nothing} value=${args.value || nothing}></nord-textarea> `, }"
        },
        {
          "kind": "variable",
          "name": "AutoResize",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-textarea label=\"Message\" resize=\"auto\" value=\"This is a component that allows user to write text over multiple rows. Used when the expected user input is long. For shorter input, use the Input component.\" ></nord-textarea> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-textarea label=\"Label\" value=\"Value\"></nord-textarea>`, }"
        },
        {
          "kind": "variable",
          "name": "CharacterCounter",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-textarea label=\"Label\" value=\"Value\" maxlength=\"100\" character-counter></nord-textarea> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomHeight",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-textarea label=\"Label\" expand resize=\"auto\" style=\"--n-textarea-block-size: 200px\"></nord-textarea> `, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-textarea label=\"Label\" value=\"Some value\" disabled></nord-textarea>`, }"
        },
        {
          "kind": "variable",
          "name": "Expanded",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-textarea label=\"Message\" expand></nord-textarea>`, }"
        },
        {
          "kind": "variable",
          "name": "HiddenLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-textarea label=\"Message\" placeholder=\"Enter your message here\" hide-label></nord-textarea> `, }"
        },
        {
          "kind": "variable",
          "name": "Readonly",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-textarea label=\"Label\" value=\"Value\" readonly></nord-textarea>`, }"
        },
        {
          "kind": "variable",
          "name": "Required",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-textarea label=\"Required\" required value=\"Value\"></nord-textarea>`, }"
        },
        {
          "kind": "variable",
          "name": "Size",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-textarea size=\"s\" label=\"Label\" placeholder=\"Write your message\"></nord-textarea> <nord-textarea size=\"m\" label=\"Label\" placeholder=\"Write your message\"></nord-textarea> <nord-textarea size=\"l\" label=\"Label\" placeholder=\"Write your message\"></nord-textarea> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "TextSelection",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-stack> <nord-textarea label=\"Text selection\" value=\"Norfryd\"></nord-textarea> <nord-stack direction=\"horizontal\" gap=\"s\"> <nord-button-group> <nord-button id=\"select-all-button\" size=\"s\">Select all</nord-button> <nord-button id=\"select-range-button\" size=\"s\">Select range</nord-button> </nord-button-group> <nord-button-group> <nord-button id=\"replace-selection-button\" size=\"s\">Replace selection</nord-button> <nord-button id=\"remove-selection-button\" size=\"s\">Remove selection</nord-button> </nord-button-group> </nord-stack> </nord-stack>` const textarea = container.querySelector('nord-textarea') const selectAllButton = container.querySelector('#select-all-button') const selectRangeButton = container.querySelector('#select-range-button') const replaceSelectionButton = container.querySelector('#replace-selection-button') const removeSelectionButton = container.querySelector('#remove-selection-button') selectAllButton.addEventListener('click', () => { textarea.select() textarea.focus() }) selectRangeButton.addEventListener('click', () => { textarea.setSelectionRange(3, 6) textarea.focus() }) replaceSelectionButton.addEventListener('click', () => { textarea.setRangeText('foo') textarea.focus() }) removeSelectionButton.addEventListener('click', () => { textarea.setRangeText('') textarea.focus() }) textarea.addEventListener('blur', () => { console.log('selectionStart', textarea.selectionStart) console.log('selectionEnd', textarea.selectionEnd) }) return container }, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexError",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-textarea label=\"Message\"> <div slot=\"error\">This field is <strong>required</strong></div> </nord-textarea> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-textarea label=\"Label\" expand> <div slot=\"hint\"> Hint is an accessible way to provide <strong>additional information</strong> that might help the user </div> </nord-textarea> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-textarea> <div slot=\"label\">Label <span style=\"color: var(--n-color-status-success)\">with color</span></div> </nord-textarea> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-textarea label=\"Label\" hint=\"Hint is an accessible way to provide additional information that might help the user\" expand ></nord-textarea> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAPlaceholder",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-textarea label=\"Message\" placeholder=\"Placeholder text goes here\"></nord-textarea> `, }"
        },
        {
          "kind": "variable",
          "name": "WithError",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-textarea label=\"Label\" error=\"This field is required\"></nord-textarea>`, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "AutoResize",
          "declaration": {
            "name": "AutoResize",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CharacterCounter",
          "declaration": {
            "name": "CharacterCounter",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomHeight",
          "declaration": {
            "name": "CustomHeight",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Expanded",
          "declaration": {
            "name": "Expanded",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HiddenLabel",
          "declaration": {
            "name": "HiddenLabel",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Readonly",
          "declaration": {
            "name": "Readonly",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Size",
          "declaration": {
            "name": "Size",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TextSelection",
          "declaration": {
            "name": "TextSelection",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexError",
          "declaration": {
            "name": "WithAComplexError",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexHint",
          "declaration": {
            "name": "WithAComplexHint",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexLabel",
          "declaration": {
            "name": "WithAComplexLabel",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAHint",
          "declaration": {
            "name": "WithAHint",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAPlaceholder",
          "declaration": {
            "name": "WithAPlaceholder",
            "module": "src/textarea/Textarea.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithError",
          "declaration": {
            "name": "WithError",
            "module": "src/textarea/Textarea.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/textarea/Textarea.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Textarea is a component that allows user to write text over\nmultiple rows. Used when the expected user input is long.\nFor shorter input, use the Input component.",
          "name": "Textarea",
          "cssProperties": [
            {
              "description": "Controls the inline size, or width, of the textarea.",
              "name": "--n-textarea-inline-size",
              "default": "240px"
            },
            {
              "description": "Controls the block size, or height, of the textarea.",
              "name": "--n-textarea-block-size",
              "default": "76px"
            },
            {
              "description": "Controls the background of the textarea, using our [color tokens](/tokens/#color).",
              "name": "--n-textarea-background",
              "default": "var(--n-color-active)"
            },
            {
              "description": "Controls the text color of the textarea, using our [color tokens](/tokens/#color).",
              "name": "--n-textarea-color",
              "default": "var(--n-color-text)"
            },
            {
              "description": "Controls the border color of the textarea, using our [color tokens](/tokens/#color).",
              "name": "--n-textarea-border-color",
              "default": "var(--n-color-border-strong)"
            },
            {
              "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
              "name": "--n-textarea-border-radius",
              "default": "var(--n-border-radius-s)"
            },
            {
              "description": "Controls the text color of the label, using our [color tokens](/tokens/#color).",
              "name": "--n-label-color",
              "default": "var(--n-color-text)"
            }
          ],
          "slots": [
            {
              "description": "Use when a label requires more than plain text.",
              "name": "label"
            },
            {
              "description": "Optional slot that holds hint text for the textarea.",
              "name": "hint"
            },
            {
              "description": "Optional slot that holds error text for the textarea.",
              "name": "error"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'textarea'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "lengthMeasurer",
              "type": {
                "text": "(value: string) => number"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "localize",
              "privacy": "private",
              "default": "new LocalizeController<'nord-textarea'>(this, { onLangChange: () => this.handleLangChange(), })"
            },
            {
              "kind": "field",
              "name": "resize",
              "type": {
                "text": "'vertical' | 'auto'"
              },
              "default": "'vertical'",
              "description": "Controls whether the textarea is resizable.\nBy default is manually resizable vertically.\nSet to \"auto\" to enable auto-resizing as content grows.",
              "attribute": "resize",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the textarea expands to fill the width of its container.",
              "attribute": "expand",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "maxLength",
              "type": {
                "text": "number | undefined"
              },
              "description": "Controls the max allowed length for the textarea.",
              "attribute": "maxlength",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "characterCounter",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether to show a count of the number of characters in the textarea.\nWhen combined with `maxlength`, both the count and the max length are shown.",
              "attribute": "character-counter",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleSelect",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderCharacterCounter",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleLangChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "resizeToFitContent",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "attribute": "size",
              "reflects": true,
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "labelSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'label')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'error')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'hint')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formData",
              "privacy": "protected",
              "default": "new FormDataController(this, { value: () => this.formValue })",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formValue",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'error'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'hint'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "attribute": "label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "attribute": "hint",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "attribute": "hide-label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "attribute": "placeholder",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "attribute": "error",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "attribute": "required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "attribute": "hide-required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "additionalContent",
                  "optional": true,
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderError",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getInvalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasHint",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasError",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              },
              "default": "'off'",
              "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
              "attribute": "autocomplete",
              "inheritedFrom": {
                "name": "AutocompleteMixin",
                "module": "src/common/mixins/AutocompleteMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
              "attribute": "readonly",
              "reflects": true,
              "inheritedFrom": {
                "name": "ReadonlyMixin",
                "module": "src/common/mixins/ReadonlyMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "textSelectableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "selectionStart",
              "description": "Gets or sets the starting position or offset of a text selection.\n\n[MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/selectionStart)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "selectionEnd",
              "description": "Gets or sets the end position or offset of a text selection.\n\n[MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/selectionEnd)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "selectionDirection",
              "description": "Gets or sets the direction in which selection occurred.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/selectionDirection)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "select",
              "description": "Selects all the text in the text field.\n\n[MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "setSelectionRange",
              "parameters": [
                {
                  "name": "start",
                  "type": {
                    "text": "number | null"
                  },
                  "description": "The offset into the text field for the start of the selection."
                },
                {
                  "name": "end",
                  "type": {
                    "text": "number | null"
                  },
                  "description": "The offset into the text field for the end of the selection."
                },
                {
                  "name": "direction",
                  "optional": true,
                  "type": {
                    "text": "'forward' | 'backward' | 'none'"
                  },
                  "description": "The direction in which the selection is performed."
                }
              ],
              "description": "Sets the start and end positions of a selection in the text field.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setSelectionRange)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "setRangeText",
              "parameters": [
                {
                  "name": "replacement",
                  "type": {
                    "text": "string"
                  },
                  "description": "The string to insert."
                },
                {
                  "name": "start",
                  "optional": true,
                  "type": {
                    "text": "number"
                  },
                  "description": "The 0-based index of the first character to replace. Defaults to the current `selectionStart` value (the start of the user's current selection)."
                },
                {
                  "name": "end",
                  "optional": true,
                  "type": {
                    "text": "number"
                  },
                  "description": "The 0-based index of the character after the last character to replace. Defaults to the current `selectionEnd` value (the end of the user's current selection)."
                },
                {
                  "name": "selectMode",
                  "default": "'preserve'",
                  "type": {
                    "text": "'select' | 'start' | 'end' | 'preserve'"
                  },
                  "description": "A string defining how the selection should be set after the text has been replaced."
                }
              ],
              "description": "Replaces a range of text with a new string.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setRangeText)",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getNativeElement",
              "description": "Returns the native `<input>` or `<textarea>` element used under the hood.",
              "inheritedFrom": {
                "name": "TextSelectableMixin",
                "module": "src/common/mixins/TextSelectableMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "events": [
            {
              "name": "select",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired when some text has been selected."
            },
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the input.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the input's value is changed via user interaction.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "resize",
              "type": {
                "text": "'vertical' | 'auto'"
              },
              "default": "'vertical'",
              "description": "Controls whether the textarea is resizable.\nBy default is manually resizable vertically.\nSet to \"auto\" to enable auto-resizing as content grows.",
              "fieldName": "resize"
            },
            {
              "name": "expand",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the textarea expands to fill the width of its container.",
              "fieldName": "expand"
            },
            {
              "name": "maxlength",
              "type": {
                "text": "number | undefined"
              },
              "description": "Controls the max allowed length for the textarea.",
              "fieldName": "maxLength"
            },
            {
              "name": "character-counter",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether to show a count of the number of characters in the textarea.\nWhen combined with `maxlength`, both the count and the max length are shown.",
              "fieldName": "characterCounter"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "fieldName": "size",
              "inheritedFrom": {
                "name": "SizeMixin",
                "module": "src/common/mixins/SizeMixin.ts"
              }
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "fieldName": "label",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "fieldName": "hint",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-label",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "fieldName": "hideLabel",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "fieldName": "placeholder",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "fieldName": "error",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "fieldName": "required",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "fieldName": "hideRequired",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              },
              "default": "'off'",
              "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
              "fieldName": "autocomplete",
              "inheritedFrom": {
                "name": "AutocompleteMixin",
                "module": "src/common/mixins/AutocompleteMixin.ts"
              }
            },
            {
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
              "fieldName": "readonly",
              "inheritedFrom": {
                "name": "ReadonlyMixin",
                "module": "src/common/mixins/ReadonlyMixin.ts"
              }
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "SizeMixin",
              "module": "/src/common/mixins/SizeMixin.js"
            },
            {
              "name": "FormAssociatedMixin",
              "module": "/src/common/mixins/FormAssociatedMixin.js"
            },
            {
              "name": "AutocompleteMixin",
              "module": "/src/common/mixins/AutocompleteMixin.js"
            },
            {
              "name": "ReadonlyMixin",
              "module": "/src/common/mixins/ReadonlyMixin.js"
            },
            {
              "name": "TextSelectableMixin",
              "module": "/src/common/mixins/TextSelectableMixin.js"
            },
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [
            {
              "name": "remainingCharacters",
              "description": "A function which receives the number of remaining characters and returns a string to be used as the aria-live message."
            }
          ],
          "status": "ready",
          "category": "form",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to allow text input where the expected input is long.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use when the expected text input is short. Use input component instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nTextarea labels act as a title for the text field. Labels should typically be short and in noun&nbsp;form:\n\n<div class=\"n-usage n-usage-do\">Company name</div>\n<div class=\"n-usage n-usage-dont\">What is your company name?</div>\n\nWhen writing textarea labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Provide description</div>\n<div class=\"n-usage n-usage-dont\">Provide Description</div>\n\nWhen a textarea isn’t part of a form and is placed individually on a page, you could provide the textarea label as a call to action:\n\n<div class=\"n-usage n-usage-do\">Leave a comment</div>\n<div class=\"n-usage n-usage-dont\">Comment</div>\n\nDo not use colons in textarea labels:\n\n<div class=\"n-usage n-usage-do\">Provide description</div>\n<div class=\"n-usage n-usage-dont\">Provide description:</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-textarea",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Textarea",
            "module": "src/textarea/Textarea.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-textarea",
          "declaration": {
            "name": "Textarea",
            "module": "src/textarea/Textarea.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/textarea/localization.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "localization",
          "type": {
            "text": "object"
          },
          "default": "{ remainingCharacters: (remainder: number) => `Characters remaining: ${remainder}`, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "localization",
            "module": "src/textarea/localization.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/toast/Toast.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Toast', component: 'nord-toast', tags: ['autodocs'], argTypes: { variant: { control: 'select', options: ['default', 'danger'], }, autoDismiss: { control: 'text' }, content: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { content: 'Toast message.', variant: 'default', autoDismiss: '10000', }, render: args => html` <nord-toast variant=${args.variant} auto-dismiss=${args.autoDismiss || nothing}>${args.content}</nord-toast> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\">Add toast</nord-button> <nord-toast-group> <nord-toast>Message sent</nord-toast> </nord-toast-group>` // clean up toasts once they are dismissed const group = container.querySelector('nord-toast-group') group.addEventListener('dismiss', e => e.target.remove()) // add toasts on click for demo purposes const button = container.querySelector('nord-button') button.addEventListener('click', () => group.addToast('Message sent')) return container }, }"
        },
        {
          "kind": "variable",
          "name": "CustomizeAutoDismiss",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\">Add toast</nord-button> <nord-toast-group> <nord-toast auto-dismiss=\"30000\">This toast will auto-dismiss after 30s, rather than the default 10s</nord-toast> </nord-toast-group>` // clean up toasts once they are dismissed const group = container.querySelector('nord-toast-group') group.addEventListener('dismiss', e => e.target.remove()) // add toasts on click for demo purposes const button = container.querySelector('nord-button') button.addEventListener('click', () => group.addToast('This is a toast', { autoDismiss: 30000 })) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Error",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\">Add toast</nord-button> <nord-toast-group> <nord-toast variant=\"danger\">No internet connection</nord-toast> </nord-toast-group>` // clean up toasts once they are dismissed const group = container.querySelector('nord-toast-group') group.addEventListener('dismiss', e => e.target.remove()) // add toasts on click for demo purposes const button = container.querySelector('nord-button') button.addEventListener('click', () => group.addToast('No internet connection', { variant: 'danger' })) return container }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/toast/Toast.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/toast/Toast.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/toast/Toast.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomizeAutoDismiss",
          "declaration": {
            "name": "CustomizeAutoDismiss",
            "module": "src/toast/Toast.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Error",
          "declaration": {
            "name": "Error",
            "module": "src/toast/Toast.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/toast/Toast.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Toasts are non-disruptive messages that appear in the interface\nto provide quick, at-a-glance feedback on the outcome of an action.",
          "name": "Toast",
          "slots": [
            {
              "description": "Default slot used for the toast text/message.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "timeoutId",
              "type": {
                "text": "ReturnType<typeof setTimeout> | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "'default' | 'danger'"
              },
              "default": "'default'",
              "description": "The style variant of the toast.",
              "attribute": "variant",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "autoDismiss",
              "type": {
                "text": "number"
              },
              "default": "10000",
              "description": "Timeout in milliseconds before the toast is automatically dismissed.",
              "attribute": "auto-dismiss",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "dismiss",
              "description": "Programmatically dismiss the toast.\nThe returned promise resolves when toast's exit animation is complete.",
              "inheritedFrom": {
                "name": "NotificationMixin",
                "module": "src/common/mixins/NotificationMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleAutoDismissChange",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "notificationRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "NotificationMixin",
                "module": "src/common/mixins/NotificationMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "dismissed",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "NotificationMixin",
                "module": "src/common/mixins/NotificationMixin.ts"
              }
            }
          ],
          "events": [
            {
              "name": "dismiss",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired when the toast is dismissed (via user action or auto-dismiss), and its exit animation has completed. This event should be used to remove the dismissed toast from the DOM.",
              "inheritedFrom": {
                "name": "NotificationMixin",
                "module": "src/common/mixins/NotificationMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "variant",
              "type": {
                "text": "'default' | 'danger'"
              },
              "default": "'default'",
              "description": "The style variant of the toast.",
              "fieldName": "variant"
            },
            {
              "name": "auto-dismiss",
              "type": {
                "text": "number"
              },
              "default": "10000",
              "description": "Timeout in milliseconds before the toast is automatically dismissed.",
              "fieldName": "autoDismiss"
            }
          ],
          "mixins": [
            {
              "name": "NotificationMixin",
              "module": "/src/common/mixins/NotificationMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "feedback",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use for short messages that confirm an action taken by a user.\n- Use for ephemeral status updates.\n- Use in combination with [Toast group](/components/toast-group) so that toasts get styled and announced to screen readers correctly.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use toasts for critical information that user needs to act on. Consider using a [Notification](/components/notification) instead.\n- Don’t rely on users seeing toasts. Toasts are transient and should not be used for critical messages.\n- Don’t place interactive content in toasts. Assistive technology like screen readers will not convey any semantics when announcing toast messages.\n- Don’t use for error messages unless absolutely necessary. Try to favor a [Banner](/components/banner/) for error messaging instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nToast content should be clear, accurate and easy to understand:\n\n<div class=\"n-usage n-usage-do\">Message sent</div>\n<div class=\"n-usage n-usage-dont\">Your message has been sent</div>\n\nWhen writing the toast content, use the {noun} + {verb} content formula:\n\n<div class=\"n-usage n-usage-do\">Patient created</div>\n<div class=\"n-usage n-usage-dont\">Your patient has been successfully updated</div>\n\nUse a maximum of 3 words when writing the toast content:\n\n<div class=\"n-usage n-usage-do\">Product updated</div>\n<div class=\"n-usage n-usage-dont\">Your product was updated just now</div>\n\nWhen writing the toast content, always write it in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Message sent</div>\n<div class=\"n-usage n-usage-dont\">Message Sent</div>\n\nAvoid unnecessary words and articles in the toast content, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Changes saved</div>\n<div class=\"n-usage n-usage-dont\">The changes were saved</div>\n\nNever end in punctuation:\n\n<div class=\"n-usage n-usage-do\">Message sent</div>\n<div class=\"n-usage n-usage-dont\">Message sent.</div>\n\n---\n\n## Additional considerations\n\n- Toasts are complicated from an accessibility perspective. Whilst they are a convenient UI pattern for messaging, they present difficulties for keyboard or screen reader users. Therefore careful consideration should be given as to whether a toast is the correct choice.\n- If the message cannot be conveyed in 3 words or less, consider re-wording. If the message cannot be shortened any further, consider choosing a different pattern than toast.\n",
          "examples": [],
          "dependencies": [
            "icon"
          ],
          "tagName": "nord-toast",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Toast",
            "module": "src/toast/Toast.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-toast",
          "declaration": {
            "name": "Toast",
            "module": "src/toast/Toast.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/toast-group/ToastGroup.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Toast Group', component: 'nord-toast-group', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: {}, render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\">Add toast</nord-button> <nord-toast-group> <nord-toast>Message sent</nord-toast> </nord-toast-group>` // clean up toasts once they are dismissed const group = container.querySelector('nord-toast-group') group.addEventListener('dismiss', e => e.target.remove()) // add toasts on click for demo purposes const button = container.querySelector('nord-button') button.addEventListener('click', () => group.addToast('Message sent')) return container }, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => { const container = document.createElement('div') container.innerHTML = `<nord-button variant=\"primary\">Add toast</nord-button> <nord-toast-group> <nord-toast>Message sent</nord-toast> </nord-toast-group>` // clean up toasts once they are dismissed const group = container.querySelector('nord-toast-group') group.addEventListener('dismiss', e => e.target.remove()) // add toasts on click for demo purposes const button = container.querySelector('nord-button') button.addEventListener('click', () => group.addToast('Message sent')) return container }, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/toast-group/ToastGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/toast-group/ToastGroup.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/toast-group/ToastGroup.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/toast-group/ToastGroup.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Toast group is used to position and style a group of toasts, whilst ensuring they are announced by screen readers.",
          "name": "ToastGroup",
          "slots": [
            {
              "description": "Default slot in which to place toasts.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "method",
              "name": "addToast",
              "parameters": [
                {
                  "name": "text",
                  "type": {
                    "text": "string"
                  },
                  "description": "The text/message of the toast."
                },
                {
                  "name": "options",
                  "default": "{}",
                  "type": {
                    "text": "ToastOptions"
                  },
                  "description": "An optional object for configuring the toast's `variant` and `autoDismiss`."
                }
              ],
              "description": "Convenience method for creating and adding a toast to the group.",
              "return": {
                "type": {
                  "text": "Toast"
                }
              }
            }
          ],
          "events": [
            {
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired when a toast is dismissed (via user action or auto-dismiss), and its exit animation has completed. This event should be used to remove the dismissed toast from the DOM.",
              "name": "dismiss"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "feedback",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use in combination with [Toast](/components/toast/) so that toasts get styled and announced to screen readers correctly.\n- Add as close to the bottom of the document as possible, ideally near the body closing tag, to maintain correct stacking order.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for grouping anything other than toast components\n\n</div>\n\n---\n\n## Content guidelines\n\nToast content should be clear, accurate and understandable by the user:\n\n<div class=\"n-usage n-usage-do\">Message sent</div>\n<div class=\"n-usage n-usage-dont\">Your message has been sent</div>\n\nWhen writing the toast content, use the {noun} + {verb} content formula:\n\n<div class=\"n-usage n-usage-do\">Patient created</div>\n<div class=\"n-usage n-usage-dont\">Your patient has been successfully updated</div>\n\nUse a maximum of 3 words when writing the toast content:\n\n<div class=\"n-usage n-usage-do\">Product updated</div>\n<div class=\"n-usage n-usage-dont\">Your product was updated just now</div>\n\nWhen writing the toast content, always write it in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Message sent</div>\n<div class=\"n-usage n-usage-dont\">Message Sent</div>\n\nAvoid unnecessary words and articles in the toast content, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Changes saved</div>\n<div class=\"n-usage n-usage-dont\">The changes were saved</div>\n\nNever end in punctuation:\n\n<div class=\"n-usage n-usage-do\">Message sent</div>\n<div class=\"n-usage n-usage-dont\">Message sent.</div>\n\n---\n\n## Additional considerations\n\n- Toasts are complicated from an accessibility perspective. Whilst they are a convenient UI pattern for messaging, they present difficulties for keyboard or screen reader users. Therefore careful consideration should be given as to whether a toast is the correct choice.\n- If the message cannot be conveyed in 3 words or less, consider re-wording. If the message cannot be shortened any further, consider choosing a different pattern than toast.\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-toast-group",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "ToastGroup",
            "module": "src/toast-group/ToastGroup.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-toast-group",
          "declaration": {
            "name": "ToastGroup",
            "module": "src/toast-group/ToastGroup.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/toggle/Toggle.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Toggle', component: 'nord-toggle', tags: ['autodocs'], argTypes: { checked: { control: 'boolean' }, reverse: { control: 'boolean' }, size: { control: 'select', options: ['s', 'm', 'l'], }, label: { control: 'text' }, hint: { control: 'text' }, hideLabel: { control: 'boolean' }, placeholder: { control: 'text' }, error: { control: 'text' }, required: { control: 'boolean' }, hideRequired: { control: 'boolean' }, disabled: { control: 'boolean' }, name: { control: 'text' }, value: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { checked: false, reverse: false, size: 'm', hideLabel: false, required: false, hideRequired: false, disabled: false, }, render: args => html` <nord-toggle ?checked=${args.checked} ?reverse=${args.reverse} size=${args.size} label=${args.label || nothing} hint=${args.hint || nothing} ?hide-label=${args.hideLabel} placeholder=${args.placeholder || nothing} error=${args.error || nothing} ?required=${args.required} ?hide-required=${args.hideRequired} ?disabled=${args.disabled} name=${args.name || nothing} value=${args.value || nothing}></nord-toggle> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-toggle checked label=\"Checked toggle\" value=\"Value\"></nord-toggle> <nord-toggle label=\"Unchecked\" value=\"Value\"></nord-toggle> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "CustomSize",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack gap=\"s\"> <nord-toggle checked label=\"Label\" value=\"Value\" size=\"s\"></nord-toggle> <nord-toggle checked label=\"Label\" value=\"Value\" size=\"m\"></nord-toggle> <nord-toggle checked label=\"Label\" value=\"Value\" size=\"l\"></nord-toggle> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "Disabled",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-fieldset label=\"Toggles\"> <nord-stack> <nord-toggle checked label=\"Checked\" disabled></nord-toggle> <nord-toggle label=\"Unchecked\" disabled></nord-toggle> </nord-stack> </nord-fieldset> `, }"
        },
        {
          "kind": "variable",
          "name": "HiddenLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-toggle label=\"Label\" hide-label></nord-toggle>`, }"
        },
        {
          "kind": "variable",
          "name": "ReverseOrder",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack style=\"max-inline-size: 200px\"> <nord-toggle reverse checked label=\"Checked toggle\" value=\"Value\"></nord-toggle> <nord-toggle reverse label=\"Unchecked\" value=\"Value\"></nord-toggle> </nord-stack> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-toggle label=\"Label\"> <div slot=\"hint\"> Hint is an accessible way to provide <strong>additional information</strong> that might help the user </div> </nord-toggle> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAComplexLabel",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-toggle> <div slot=\"label\">Label <span style=\"color: var(--n-color-status-success)\">with color</span></div> </nord-toggle> `, }"
        },
        {
          "kind": "variable",
          "name": "WithAHint",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-toggle label=\"Label\" hint=\"Hint is an accessible way to provide additional information that might help the user\" expand ></nord-toggle> `, }"
        },
        {
          "kind": "variable",
          "name": "WithError",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack> <nord-toggle checked label=\"Checked toggle\" error=\"This field is required\"></nord-toggle> <nord-toggle label=\"Unchecked\" error=\"This field is required\"></nord-toggle> </nord-stack> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/toggle/Toggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/toggle/Toggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/toggle/Toggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "CustomSize",
          "declaration": {
            "name": "CustomSize",
            "module": "src/toggle/Toggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Disabled",
          "declaration": {
            "name": "Disabled",
            "module": "src/toggle/Toggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "HiddenLabel",
          "declaration": {
            "name": "HiddenLabel",
            "module": "src/toggle/Toggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "ReverseOrder",
          "declaration": {
            "name": "ReverseOrder",
            "module": "src/toggle/Toggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexHint",
          "declaration": {
            "name": "WithAComplexHint",
            "module": "src/toggle/Toggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAComplexLabel",
          "declaration": {
            "name": "WithAComplexLabel",
            "module": "src/toggle/Toggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithAHint",
          "declaration": {
            "name": "WithAHint",
            "module": "src/toggle/Toggle.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "WithError",
          "declaration": {
            "name": "WithError",
            "module": "src/toggle/Toggle.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/toggle/Toggle.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Toggle switch gives control over a feature or option that can be\nturned on or off. If a physical switch would work for the action, a\ntoggle is probably the best component to use.",
          "name": "Toggle",
          "cssProperties": [
            {
              "description": "Controls the text color of the label, using our [color tokens](/tokens/#color).",
              "name": "--n-label-color",
              "default": "var(--n-color-text)"
            }
          ],
          "slots": [
            {
              "description": "Use when a label requires more than plain text.",
              "name": "label"
            },
            {
              "description": "Optional slot that holds hint text for the input.",
              "name": "hint"
            },
            {
              "description": "Optional slot that holds error text for the input.",
              "name": "error"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "formValue",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the toggle is checked or not.",
              "attribute": "checked",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "reverse",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the contents are displayed in reverse order,\nputting the label before the toggle.",
              "attribute": "reverse",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the toggle switch.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "labelSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'label')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'error')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'hint')",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formData",
              "privacy": "protected",
              "default": "new FormDataController(this, { value: () => this.formValue })",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'input'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "errorId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'error'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hintId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'hint'",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "attribute": "label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "attribute": "hint",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "attribute": "hide-label",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "attribute": "placeholder",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "attribute": "error",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "attribute": "required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "attribute": "hide-required",
              "reflects": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "additionalContent",
                  "optional": true,
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "renderError",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "getInvalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasHint",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasError",
              "privacy": "protected",
              "readonly": true,
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true,
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component.",
              "inheritedFrom": {
                "name": "FocusableMixin",
                "module": "src/common/mixins/FocusableMixin.ts"
              }
            }
          ],
          "attributes": [
            {
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the toggle is checked or not.",
              "fieldName": "checked"
            },
            {
              "name": "reverse",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the contents are displayed in reverse order,\nputting the label before the toggle.",
              "fieldName": "reverse"
            },
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the toggle switch.",
              "fieldName": "size"
            },
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "fieldName": "label",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "fieldName": "hint",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-label",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "fieldName": "hideLabel",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "fieldName": "placeholder",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "fieldName": "error",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "fieldName": "required",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "hide-required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "fieldName": "hideRequired",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form",
              "inheritedFrom": {
                "name": "InputMixin",
                "module": "src/common/mixins/InputMixin.ts"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormAssociatedMixin",
              "module": "/src/common/mixins/FormAssociatedMixin.js"
            },
            {
              "name": "InputMixin",
              "module": "/src/common/mixins/InputMixin.js"
            },
            {
              "name": "FocusableMixin",
              "module": "/src/common/mixins/FocusableMixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "form",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use toggles when your intent is to turn something on or off instantly.\n- Use for any feature or option that can be turned on or off.\n- If a physical switch would work for the action, the toggle is probably the best component to use.\n- Use for making it possible to choose one or more options from a limited number of options.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Toggles should never require users to click a button to apply or save the setting.\n- Avoid using when you have more than 10 options to choose from.\n- Don’t change the selection of another toggle when another one is clicked. Only exception is when a toggle is used to make a bulk selection of multiple items.\n\n</div>\n\n---\n\n## Content guidelines\n\nToggle labels should be clear, accurate and predictable. It should be possible for the user to understand what they are selecting:\n\n<div class=\"n-usage n-usage-do\">User settings</div>\n<div class=\"n-usage n-usage-dont\">Option 1</div>\n\nWhen writing toggle labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">User settings</div>\n<div class=\"n-usage n-usage-dont\">User Settings</div>\n\nAvoid ending in punctuation if it’s a single sentence, word, or a fragment:\n\n<div class=\"n-usage n-usage-do\">Show dashboard</div>\n<div class=\"n-usage n-usage-dont\">Show dashboard.</div>\n\nDo not use commas or semicolons at the end of each line\n\n<div class=\"n-usage n-usage-do\">Patients</div>\n<div class=\"n-usage n-usage-dont\">Patients;</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-toggle",
          "customElement": true,
          "events": [
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the input.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            },
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the input's value is changed via user interaction.",
              "inheritedFrom": {
                "name": "FormAssociatedMixin",
                "module": "src/common/mixins/FormAssociatedMixin.ts"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Toggle",
            "module": "src/toggle/Toggle.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-toggle",
          "declaration": {
            "name": "Toggle",
            "module": "src/toggle/Toggle.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tooltip/Tooltip.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Tooltip', component: 'nord-tooltip', tags: ['autodocs'], argTypes: { position: { control: 'select', options: ['block-end', 'block-start', 'inline-start', 'inline-end'], }, id: { control: 'text' }, delay: { control: 'text' }, content: { control: 'text' }, }, parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: { content: 'I\\'m a tooltip', position: 'block-start', }, render: args => html` <nord-stack align-items=\"center\" style=\"margin: var(--n-space-xl) auto\"> <nord-button aria-describedby=\"tooltip\">View tooltip</nord-button> </nord-stack> <nord-tooltip id=\"tooltip\" position=${args.position}>${args.content}</nord-tooltip> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" style=\"margin: var(--n-space-xl) auto\"> <nord-button aria-describedby=\"tooltip\">View tooltip</nord-button> </nord-stack> <nord-tooltip id=\"tooltip\">I'm a tooltip</nord-tooltip> `, }"
        },
        {
          "kind": "variable",
          "name": "TooltipBottom",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" style=\"margin: var(--n-space-xl) auto\"> <nord-button aria-describedby=\"tooltip\">View tooltip</nord-button> </nord-stack> <nord-tooltip id=\"tooltip\" position=\"block-end\">I'm a tooltip</nord-tooltip> `, }"
        },
        {
          "kind": "variable",
          "name": "TooltipLeft",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" style=\"margin: var(--n-space-xl) auto\"> <nord-button aria-describedby=\"tooltip\">View tooltip</nord-button> </nord-stack> <nord-tooltip id=\"tooltip\" position=\"inline-start\">I'm a tooltip</nord-tooltip> `, }"
        },
        {
          "kind": "variable",
          "name": "TooltipMultipleTriggers",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-table density=\"condensed\"> <table> <thead> <tr> <th>Description</th> <th>Options</th> </tr> </thead> <tbody> <tr> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td> <nord-button size=\"s\" aria-describedby=\"tooltip\">Edit</nord-button> </td> </tr> <tr> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td> <nord-button size=\"s\" aria-describedby=\"tooltip\">Edit</nord-button> </td> </tr> <tr> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td> <nord-button size=\"s\" aria-describedby=\"tooltip\">Edit</nord-button> </td> </tr> <tr> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td> <nord-button size=\"s\" aria-describedby=\"tooltip\">Edit</nord-button> </td> </tr> <tr> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td> <nord-button size=\"s\" aria-describedby=\"tooltip\">Edit</nord-button> </td> </tr> <tr> <td class=\"n-table-ellipsis\"> Suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing suspendisse blandit sodales eros, quis aliquet leo aliquet ultrices lorem ipsum dolor sit amet consectetuer adipiscing </td> <td> <nord-button size=\"s\" aria-describedby=\"tooltip\">Edit</nord-button> </td> </tr> </tbody> </table> </nord-table> <nord-tooltip id=\"tooltip\">Edit this row</nord-tooltip> `, }"
        },
        {
          "kind": "variable",
          "name": "TooltipRight",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" style=\"margin: var(--n-space-xl) auto\"> <nord-button aria-describedby=\"tooltip\">View tooltip</nord-button> </nord-stack> <nord-tooltip id=\"tooltip\" position=\"inline-end\">I'm a tooltip</nord-tooltip> `, }"
        },
        {
          "kind": "variable",
          "name": "TooltipWithCustomSize",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" style=\"margin: var(--n-space-xxl) auto\"> <nord-button aria-describedby=\"tooltip\">View tooltip</nord-button> </nord-stack> <nord-tooltip id=\"tooltip\" style=\"--n-tooltip-max-size: 200px\"> Lorem ipsum dolor sit amet consectetur, adipisicing elit. </nord-tooltip> `, }"
        },
        {
          "kind": "variable",
          "name": "TooltipWithShortcut",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-stack align-items=\"center\" style=\"margin: var(--n-space-xl) auto\"> <nord-button aria-describedby=\"tooltip\">View tooltip</nord-button> </nord-stack> <nord-tooltip id=\"tooltip\"> I'm a tooltip <nord-icon slot=\"shortcut\" name=\"keyboard-option\" label=\"Option key\"></nord-icon> <span slot=\"shortcut\">S</span> </nord-tooltip> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/tooltip/Tooltip.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/tooltip/Tooltip.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/tooltip/Tooltip.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TooltipBottom",
          "declaration": {
            "name": "TooltipBottom",
            "module": "src/tooltip/Tooltip.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TooltipLeft",
          "declaration": {
            "name": "TooltipLeft",
            "module": "src/tooltip/Tooltip.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TooltipMultipleTriggers",
          "declaration": {
            "name": "TooltipMultipleTriggers",
            "module": "src/tooltip/Tooltip.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TooltipRight",
          "declaration": {
            "name": "TooltipRight",
            "module": "src/tooltip/Tooltip.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TooltipWithCustomSize",
          "declaration": {
            "name": "TooltipWithCustomSize",
            "module": "src/tooltip/Tooltip.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "TooltipWithShortcut",
          "declaration": {
            "name": "TooltipWithShortcut",
            "module": "src/tooltip/Tooltip.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/tooltip/Tooltip.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Tooltips are floating containers for displaying additional information\nfor the currently focused element. A tooltip can be useful when you want\nto e.g. give a hint about an existing Command Menu shortcut.",
          "name": "Tooltip",
          "cssProperties": [
            {
              "description": "Controls the maximum inline size, or width, of the tooltip.",
              "name": "--n-tooltip-max-size",
              "default": "50ch"
            }
          ],
          "slots": [
            {
              "description": "The tooltip content",
              "name": ""
            },
            {
              "description": "Optional slot that holds shortcut keys to access the subject",
              "name": "shortcut"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "lastOpened",
              "type": {
                "text": "Tooltip | undefined"
              },
              "privacy": "private",
              "static": true
            },
            {
              "kind": "field",
              "name": "shortcutSlot",
              "privacy": "private",
              "default": "new SlotController(this, 'shortcut')"
            },
            {
              "kind": "field",
              "name": "events",
              "privacy": "private",
              "default": "new EventController(this)"
            },
            {
              "kind": "field",
              "name": "currentElement",
              "type": {
                "text": "FocusableElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "timeoutId",
              "type": {
                "text": "ReturnType<typeof setTimeout> | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "proxy",
              "type": {
                "text": "HTMLSpanElement | undefined"
              },
              "privacy": "private",
              "description": "the proxy element is for cases where the targetElement is a web component,\nand the WC has a focusable child in its shadow root e.g. a button component.\nin this case, when the tooltip is shown, we inject the proxy into targetElement's shadow root\nand wire up aria-describedby from the focusable element to the proxy.\nwhen the tooltip is hidden, we remove the proxy and remove the aria-describedby relationship."
            },
            {
              "kind": "field",
              "name": "state",
              "type": {
                "text": "TooltipStates"
              },
              "privacy": "private",
              "default": "'hidden'",
              "description": "The current state of the tooltip, dependent on the state machine"
            },
            {
              "kind": "field",
              "name": "coords",
              "type": {
                "text": "[number, number]"
              },
              "privacy": "private",
              "default": "[0, 0]"
            },
            {
              "kind": "field",
              "name": "position",
              "type": {
                "text": "'block-end' | 'block-start' | 'inline-start' | 'inline-end'"
              },
              "default": "'block-start'",
              "description": "Control the position of the tooltip component.\nWhen set to \"none\", the tooltip will be shown above\nbut accommodate for browser boundaries.",
              "attribute": "position",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "role",
              "type": {
                "text": "string"
              },
              "default": "'tooltip'",
              "description": "The tooltip role, set on the component by default.",
              "attribute": "role",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "id",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The id for the active element to reference via aria-describedby.",
              "attribute": "id",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "delay",
              "type": {
                "text": "number"
              },
              "default": "500",
              "description": "The delay in milliseconds before the tooltip is opened.",
              "attribute": "delay",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleIdChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleStateChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "prevState",
                  "type": {
                    "text": "TooltipStates"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "updatePosition",
              "privacy": "private",
              "description": "Setting and updating the position of the tooltip"
            },
            {
              "kind": "field",
              "name": "hideTooltip",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "reposition",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleShow",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleHide",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "hideOnEscape",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "addDescribedBy",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "removeDescribedBy",
              "privacy": "private"
            }
          ],
          "attributes": [
            {
              "name": "position",
              "type": {
                "text": "'block-end' | 'block-start' | 'inline-start' | 'inline-end'"
              },
              "default": "'block-start'",
              "description": "Control the position of the tooltip component.\nWhen set to \"none\", the tooltip will be shown above\nbut accommodate for browser boundaries.",
              "fieldName": "position"
            },
            {
              "name": "role",
              "type": {
                "text": "string"
              },
              "default": "'tooltip'",
              "description": "The tooltip role, set on the component by default.",
              "fieldName": "role"
            },
            {
              "name": "id",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The id for the active element to reference via aria-describedby.",
              "fieldName": "id"
            },
            {
              "name": "delay",
              "type": {
                "text": "number"
              },
              "default": "500",
              "description": "The delay in milliseconds before the tooltip is opened.",
              "fieldName": "delay"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "overlay",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use a tooltip if an interactive element requires more explanation.\n- Use a tooltip to provide additional information, such as UI shortcuts.\n- Use the `label` attribute on icons used for shortcuts for accessibility.\n- Use clear and accurate phrasing.\n- Be consistent with positioning of tooltips in the user interface.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use interactive elements such as links or buttons inside a tooltip.\n- Don’t rely on tooltips when you have room to provide more explanation.\n- Don’t depend on tooltips for vital information.\n\n</div>\n\n---\n\n## Content guidelines\n\nTooltips should be clear and informative, but not imperative to using the interface they refer to. They should not contain interactive elements such as buttons or links.\n\n<div class=\"n-usage n-usage-do\">Export – Export data as a spreadsheet</div>\n<div class=\"n-usage n-usage-dont\">Export – Export data as a CSV, <u>more information on CSVs</u></div>\n\nTooltips should provide useful information and not repeat information that is already present.\n\n<div class=\"n-usage n-usage-do\">Export – Export data as a spreadsheet</div>\n<div class=\"n-usage n-usage-dont\">Export – Export data</div>\n\nWhen writing tooltips, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Export data as a spreadsheet</div>\n<div class=\"n-usage n-usage-dont\">Export Data As a Spreadsheet</div>\n\nUse tooltips sparingly. If your UI is requiring a lot of tooltips, consider revising the interface to provide better explanations and better labelling.\n\n---\n\n## Additional considerations\n\n- Always provide a tooltip for icon-only buttons or a button with an associated keyboard shortcut.\n- Don’t use tooltip to communicate critical information, including errors.\n- Use sparingly. If you’re building something that requires a lot of tooltips, take a step back and work on clarifying the design and the language used instead.\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-tooltip",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "Tooltip",
            "module": "src/tooltip/Tooltip.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-tooltip",
          "declaration": {
            "name": "Tooltip",
            "module": "src/tooltip/Tooltip.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/top-bar/TopBar.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Top Bar', component: 'nord-top-bar', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: {}, render: () => html` <nord-top-bar> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> <nord-dropdown slot=\"end\"> <nord-button variant=\"plain\" slot=\"toggle\" aria-describedby=\"user-tooltip\"> <nord-avatar style=\"transform: translateY(-1px)\" name=\"Ariel Salminen\">AS</nord-avatar> </nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Ariel Salminen\">AS</nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Ariel Salminen</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"user-tooltip\">Ariel Salminen</nord-tooltip> </nord-top-bar> `, }"
        },
        {
          "kind": "variable",
          "name": "Advanced",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>@media (max-width: 768px) { nord-top-bar nord-input[type=\"search\"]:focus ~ nord-dropdown { display: none; } }</style> <nord-top-bar> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"notifications-tooltip\"> <nord-icon name=\"navigation-notifications\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">12</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\"> Notifications <span class=\"n-font-weight n-color-text-weaker\">(12)</span> </h2> <nord-button slot=\"header-end\" size=\"s\" autofocus>Mark all as read</nord-button> <nord-message unread highlight> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> New feature available! We’ve introduced a quick way to navigate between app views, actions, and more using a new command menu. <span slot=\"footer\">12 minutes ago</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Nick Williams arrived to clinic with Moog cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Eric Habich arrived to clinic with Zero cat. <span slot=\"footer\">4 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Elvin van Eede arrived to clinic with Amoeba cat. <span slot=\"footer\">12 hours ago at Nord Clinic</span> </nord-message> <nord-dropdown-item> See all notifications<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"notifications-tooltip\">12 unread notifications</nord-tooltip> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"tasks-tooltip\"> <nord-icon name=\"navigation-tasks\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">4</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\">My tasks <span class=\"n-font-weight n-color-text-weaker\">(4)</span></h2> <nord-button slot=\"header-end\" size=\"s\" autofocus> <nord-icon slot=\"start\" size=\"xxs\" name=\"interface-add-small\"></nord-icon> Create task </nord-button> <nord-message unread> Make sure to ask details from John regarding yesterday’s patient who arrived late. <span slot=\"footer\">Finish by Wednesday, March 8</span> </nord-message> <nord-message unread> Import new patients from Ocean Beach Clinic into the system. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call David and ask about his cat’s wellbeing. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call Anne and reschedule their visit. <span slot=\"footer\">Finish by Friday, March 10</span> </nord-message> <nord-dropdown-item> See all tasks<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"tasks-tooltip\">4 unfinished tasks</nord-tooltip> <nord-dropdown slot=\"end\"> <nord-button variant=\"plain\" slot=\"toggle\" aria-describedby=\"user-tooltip\"> <nord-avatar style=\"transform: translateY(-1px)\" name=\"Ariel Salminen\">AS</nord-avatar> </nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Ariel Salminen\">AS</nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Ariel Salminen</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"user-tooltip\">Ariel Salminen</nord-tooltip> </nord-top-bar> `, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <nord-top-bar> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> <nord-dropdown slot=\"end\"> <nord-button variant=\"plain\" slot=\"toggle\" aria-describedby=\"user-tooltip\"> <nord-avatar style=\"transform: translateY(-1px)\" name=\"Ariel Salminen\">AS</nord-avatar> </nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Ariel Salminen\">AS</nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Ariel Salminen</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"user-tooltip\">Ariel Salminen</nord-tooltip> </nord-top-bar> `, }"
        },
        {
          "kind": "variable",
          "name": "Color",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html` <style>:root { /* CUSTOM ACCENT COLORS */ --n-color-accent: #793aaf; --n-color-accent-secondary: #3b0075; } @media (max-width: 768px) { nord-top-bar nord-input[type=\"search\"]:focus ~ nord-dropdown { display: none; } }</style> <nord-top-bar> <nord-input expand label=\"Search\" hide-label type=\"search\" placeholder=\"Search\"></nord-input> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"notifications-tooltip\"> <nord-icon name=\"navigation-notifications\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">12</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\"> Notifications <span class=\"n-font-weight n-color-text-weaker\">(12)</span> </h2> <nord-button slot=\"header-end\" size=\"s\" autofocus>Mark all as read</nord-button> <nord-message unread highlight> Ariel Salminen arrived to clinic with Pixie cat. <span slot=\"footer\">Just now at Nord Clinic</span> </nord-message> <nord-message unread> New feature available! We’ve introduced a quick way to navigate between app views, actions, and more using a new command menu. <span slot=\"footer\">12 minutes ago</span> </nord-message> <nord-message unread> Nina Hallikainen arrived to clinic with Durante dog. <span slot=\"footer\">20 minutes ago at Nord Clinic</span> </nord-message> <nord-message unread> David Darnes arrived to clinic with Norfryd cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Nick Williams arrived to clinic with Moog cat. <span slot=\"footer\">2 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Eric Habich arrived to clinic with Zero cat. <span slot=\"footer\">4 hours ago at Nord Clinic</span> </nord-message> <nord-message unread> Elvin van Eede arrived to clinic with Amoeba cat. <span slot=\"footer\">12 hours ago at Nord Clinic</span> </nord-message> <nord-dropdown-item> See all notifications<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"notifications-tooltip\">12 unread notifications</nord-tooltip> <nord-dropdown slot=\"end\" align=\"start\" position=\"block-end\"> <nord-button slot=\"toggle\" variant=\"plain\" aria-describedby=\"tasks-tooltip\"> <nord-icon name=\"navigation-tasks\" size=\"m\" color=\"rgba(255,255,255,0.85)\"></nord-icon> <div class=\"n-counter\" aria-hidden=\"true\" style=\"position: absolute\">4</div> </nord-button> <h2 slot=\"header\" class=\"n-typescale-l\">My tasks <span class=\"n-font-weight n-color-text-weaker\">(4)</span></h2> <nord-button slot=\"header-end\" size=\"s\" autofocus> <nord-icon slot=\"start\" size=\"xxs\" name=\"interface-add-small\"></nord-icon> Create task </nord-button> <nord-message unread> Make sure to ask details from John regarding yesterday’s patient who arrived late. <span slot=\"footer\">Finish by Wednesday, March 8</span> </nord-message> <nord-message unread> Import new patients from Ocean Beach Clinic into the system. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call David and ask about his cat’s wellbeing. <span slot=\"footer\">Finish by Thursday, March 9</span> </nord-message> <nord-message unread> Call Anne and reschedule their visit. <span slot=\"footer\">Finish by Friday, March 10</span> </nord-message> <nord-dropdown-item> See all tasks<nord-icon slot=\"end\" name=\"arrow-right-long\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"tasks-tooltip\">4 unfinished tasks</nord-tooltip> <nord-dropdown slot=\"end\"> <nord-button variant=\"plain\" slot=\"toggle\" aria-describedby=\"user-tooltip\"> <nord-avatar style=\"transform: translateY(-1px)\" name=\"Ariel Salminen\">AS</nord-avatar> </nord-button> <nord-avatar slot=\"header\" size=\"s\" name=\"Ariel Salminen\">AS</nord-avatar> <p slot=\"header\" class=\"n-color-text-weak n-font-size-s\"> Signed in as <span class=\"n-font-weight-active\">Ariel Salminen</span> </p> <nord-dropdown-group> <nord-dropdown-item>My profile</nord-dropdown-item> <nord-dropdown-item>Account Settings</nord-dropdown-item> <nord-dropdown-item>Change password</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-group> <nord-dropdown-item> Keyboard commands <div slot=\"end\" class=\"n-color-text-weaker n-font-size-xs\">Cmd+K</div> </nord-dropdown-item> <nord-dropdown-item>Help & Support</nord-dropdown-item> </nord-dropdown-group> <nord-dropdown-item> Sign out <nord-icon slot=\"end\" name=\"interface-logout\"></nord-icon> </nord-dropdown-item> </nord-dropdown> <nord-tooltip id=\"user-tooltip\">Ariel Salminen</nord-tooltip> </nord-top-bar> `, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/top-bar/TopBar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/top-bar/TopBar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Advanced",
          "declaration": {
            "name": "Advanced",
            "module": "src/top-bar/TopBar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/top-bar/TopBar.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Color",
          "declaration": {
            "name": "Color",
            "module": "src/top-bar/TopBar.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/top-bar/TopBar.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Top bar is a header component that is always visible at the top of the interface. Top bar allows functionality such as search and contextual menus to be placed at the top of the interface.",
          "name": "TopBar",
          "slots": [
            {
              "description": "Used for the main content of the top bar. We recommend placing your application’s global search functionality into this slot.",
              "name": ""
            },
            {
              "description": "Optional slot for menus, buttons, toggles, etc.",
              "name": "end"
            }
          ],
          "members": [],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "structure",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Applications that utilize the top bar can allow users to customize the color of the top bar to match their preference. [View an example](/components/top-bar/?example=color).\n- If your application allows it, include search to help users find resources and navigate.\n- Include a user menu in the end slot of the top bar.\n- Use the [layout component](/components/layout/?example=top-bar) to provide structure for the top bar component. We’ve also created [an example which shows full theming capabilities](/components/layout/?example=theming).\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for global navigation. Use the [navigation component](/components/navigation/) instead.\n- Don’t allow the user to set a top bar color that doesn’t provide enough contrast with the content.\n- Don’t allow the user to freely pick a hex code as the top bar color. Instead, offer a choice from a predefined palette of colors which provides sufficient contrast with the content. [View an example](/components/top-bar/?example=color).\n\n</div>\n\n---\n\n## Theming\n\nPlease see the [Top Bar theming](/themes/#top-bar-theming) section in our theming documentation for detailed guidelines.\n\n<nord-button variant=\"primary\" href=\"/themes/#top-bar-theming\">Theming Guidelines</nord-button>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-top-bar",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "TopBar",
            "module": "src/top-bar/TopBar.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-top-bar",
          "declaration": {
            "name": "TopBar",
            "module": "src/top-bar/TopBar.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/visually-hidden/VisuallyHidden.stories.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "meta",
          "type": {
            "text": "Meta"
          },
          "default": "{ title: 'Components/Visually Hidden', component: 'nord-visually-hidden', tags: ['autodocs'], parameters: { controls: { disable: true } }, }"
        },
        {
          "kind": "variable",
          "name": "Playground",
          "type": {
            "text": "Story"
          },
          "default": "{ parameters: { controls: { disable: false } }, args: {}, render: () => html`<nord-visually-hidden>I am hidden</nord-visually-hidden>`, }"
        },
        {
          "kind": "variable",
          "name": "Basic",
          "type": {
            "text": "Story"
          },
          "default": "{ render: () => html`<nord-visually-hidden>I am hidden</nord-visually-hidden>`, }"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "meta",
            "module": "src/visually-hidden/VisuallyHidden.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Playground",
          "declaration": {
            "name": "Playground",
            "module": "src/visually-hidden/VisuallyHidden.stories.ts"
          }
        },
        {
          "kind": "js",
          "name": "Basic",
          "declaration": {
            "name": "Basic",
            "module": "src/visually-hidden/VisuallyHidden.stories.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/visually-hidden/VisuallyHidden.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Visually hidden is used when an element needs to be available\nto assistive technologies like screen readers, but be otherwise\nhidden.",
          "name": "VisuallyHidden",
          "slots": [
            {
              "description": "The visually hidden content.",
              "name": ""
            }
          ],
          "members": [],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "localization": [],
          "status": "ready",
          "category": "text",
          "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to hide text visually from the screen, but keep it available to assistive technologies, such as screen readers.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for hiding interactive content.\n\n</div>\n",
          "examples": [],
          "dependencies": [],
          "tagName": "nord-visually-hidden",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "default",
          "declaration": {
            "name": "VisuallyHidden",
            "module": "src/visually-hidden/VisuallyHidden.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "nord-visually-hidden",
          "declaration": {
            "name": "VisuallyHidden",
            "module": "src/visually-hidden/VisuallyHidden.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/BroadcastChannelController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "BroadcastChannelController",
          "members": [
            {
              "kind": "field",
              "name": "channel",
              "type": {
                "text": "BroadcastChannel | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "options",
              "type": {
                "text": "Required<Options<T>>"
              },
              "privacy": "private",
              "default": "{ enabled: defaultEnabled, ...options }"
            },
            {
              "kind": "method",
              "name": "hostConnected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "hostDisconnected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "handleEvent",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "MessageEvent<T>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "post",
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "T"
                  }
                }
              ]
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "BroadcastChannelController",
          "declaration": {
            "name": "BroadcastChannelController",
            "module": "src/common/controllers/BroadcastChannelController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/DirectionController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "DirectionController",
          "members": [
            {
              "kind": "field",
              "name": "hosts",
              "privacy": "private",
              "static": true,
              "default": "new Set<ReactiveControllerHost>()"
            },
            {
              "kind": "field",
              "name": "observer",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private",
              "static": true
            },
            {
              "kind": "field",
              "name": "dir",
              "type": {
                "text": "WritingDirection"
              },
              "readonly": true
            },
            {
              "kind": "field",
              "name": "isLTR",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "isRTL",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "hostConnected"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            },
            {
              "kind": "method",
              "name": "observe",
              "privacy": "private",
              "static": true
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DirectionController",
          "declaration": {
            "name": "DirectionController",
            "module": "src/common/controllers/DirectionController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/EventController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "EventController",
          "members": [
            {
              "kind": "field",
              "name": "listeners",
              "type": {
                "text": "Array<() => void>"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            },
            {
              "kind": "method",
              "name": "listen",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "window",
                  "type": {
                    "text": "Window"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "K"
                  }
                },
                {
                  "name": "listener",
                  "type": {
                    "text": "(this: Window, ev: WindowEventMap[K]) => void"
                  }
                },
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "boolean | AddEventListenerOptions"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "listen",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "document",
                  "type": {
                    "text": "Document"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "K"
                  }
                },
                {
                  "name": "listener",
                  "type": {
                    "text": "(this: Document, ev: DocumentEventMap[K]) => void"
                  }
                },
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "boolean | AddEventListenerOptions"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "listen",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "K"
                  }
                },
                {
                  "name": "listener",
                  "type": {
                    "text": "(this: HTMLElement, ev: HTMLElementEventMap[K]) => void"
                  }
                },
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "boolean | AddEventListenerOptions"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "listen",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "ShadowRoot"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "K"
                  }
                },
                {
                  "name": "listener",
                  "type": {
                    "text": "(this: ShadowRoot, ev: ShadowRootEventMap[K]) => void"
                  }
                },
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "boolean | AddEventListenerOptions"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "listen",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "MediaQueryList"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "K"
                  }
                },
                {
                  "name": "listener",
                  "type": {
                    "text": "(this: ShadowRoot, ev: MediaQueryListEventMap[K]) => void"
                  }
                },
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "boolean | AddEventListenerOptions"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "listen",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "EventTarget"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "listener",
                  "type": {
                    "text": "(this: EventTarget, ev: Event) => void"
                  }
                },
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "boolean | AddEventListenerOptions"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "listen",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "EventTarget"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "listener",
                  "type": {
                    "text": "(this: EventTarget, ev: Event) => void"
                  }
                },
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "boolean | AddEventListenerOptions"
                  }
                }
              ]
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "EventController",
          "declaration": {
            "name": "EventController",
            "module": "src/common/controllers/EventController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/FocusTrapController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FocusTrapController",
          "members": [
            {
              "kind": "field",
              "name": "inertElements",
              "type": {
                "text": "Element[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            },
            {
              "kind": "method",
              "name": "trap"
            },
            {
              "kind": "method",
              "name": "release"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FocusTrapController",
          "declaration": {
            "name": "FocusTrapController",
            "module": "src/common/controllers/FocusTrapController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/FormDataController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FormDataController",
          "members": [
            {
              "kind": "field",
              "name": "_form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "method",
              "name": "hostConnected"
            },
            {
              "kind": "method",
              "name": "hostUpdated"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            },
            {
              "kind": "method",
              "name": "listen",
              "privacy": "private",
              "parameters": [
                {
                  "name": "form",
                  "type": {
                    "text": "HTMLFormElement | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "cleanup",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleFormData",
              "privacy": "private"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormDataController",
          "declaration": {
            "name": "FormDataController",
            "module": "src/common/controllers/FormDataController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/LightDismissController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "LightDismissController",
          "members": [
            {
              "kind": "field",
              "name": "shortcut",
              "type": {
                "text": "ShortcutController"
              },
              "privacy": "private",
              "default": "new ShortcutController(host, { Escape: this.handleEsc })"
            },
            {
              "kind": "field",
              "name": "events",
              "type": {
                "text": "EventController"
              },
              "privacy": "private",
              "default": "new EventController(host)"
            },
            {
              "kind": "field",
              "name": "isMouseDownOutside",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "hostConnected"
            },
            {
              "kind": "field",
              "name": "handleEsc",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleMouseDown",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "LightDismissController",
          "declaration": {
            "name": "LightDismissController",
            "module": "src/common/controllers/LightDismissController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/LightDomController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "LightDomController",
          "members": [
            {
              "kind": "field",
              "name": "container",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "hostUpdated"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "LightDomController",
          "declaration": {
            "name": "LightDomController",
            "module": "src/common/controllers/LightDomController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/LightSlotController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Handles cases where a component needs to render to light DOM,\nand potentially sync component properties to user-supplied content.",
          "name": "LightSlotController",
          "members": [
            {
              "kind": "field",
              "name": "renderHook",
              "type": {
                "text": "Comment | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "lightDom",
              "type": {
                "text": "LightDomController | undefined"
              },
              "privacy": "private",
              "default": "new LightDomController(host, { render: () => (this.hasContent ? nothing : this.options.render()), renderOptions: { renderBefore: this.renderHook }, })"
            },
            {
              "kind": "method",
              "name": "hostConnected",
              "inheritedFrom": {
                "name": "SlotController",
                "module": "src/common/controllers/SlotController.ts"
              }
            },
            {
              "kind": "field",
              "name": "onChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "_e",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "SlotController",
                "module": "src/common/controllers/SlotController.ts"
              }
            },
            {
              "kind": "method",
              "name": "syncLightDom",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "events",
              "type": {
                "text": "EventController"
              },
              "privacy": "private",
              "default": "new EventController(host)",
              "inheritedFrom": {
                "name": "SlotController",
                "module": "src/common/controllers/SlotController.ts"
              }
            },
            {
              "kind": "field",
              "name": "selector",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "SlotController",
                "module": "src/common/controllers/SlotController.ts"
              }
            },
            {
              "kind": "field",
              "name": "hasContent",
              "readonly": true,
              "inheritedFrom": {
                "name": "SlotController",
                "module": "src/common/controllers/SlotController.ts"
              }
            },
            {
              "kind": "field",
              "name": "isEmpty",
              "readonly": true,
              "inheritedFrom": {
                "name": "SlotController",
                "module": "src/common/controllers/SlotController.ts"
              }
            },
            {
              "kind": "field",
              "name": "content",
              "readonly": true,
              "inheritedFrom": {
                "name": "SlotController",
                "module": "src/common/controllers/SlotController.ts"
              }
            },
            {
              "kind": "field",
              "name": "assigned",
              "readonly": true,
              "inheritedFrom": {
                "name": "SlotController",
                "module": "src/common/controllers/SlotController.ts"
              }
            },
            {
              "kind": "field",
              "name": "handleSlotChange",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SlotController",
                "module": "src/common/controllers/SlotController.ts"
              }
            }
          ],
          "superclass": {
            "name": "SlotController",
            "module": "/src/common/controllers/SlotController.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "LightSlotController",
          "declaration": {
            "name": "LightSlotController",
            "module": "src/common/controllers/LightSlotController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/PortalController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "PortalController",
          "members": [
            {
              "kind": "field",
              "name": "renderHook",
              "type": {
                "text": "Comment"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "lightDom",
              "type": {
                "text": "LightDomController"
              },
              "privacy": "private",
              "default": "new LightDomController(host, { render: () => this.options.render.call(host), container: options.outlet, renderOptions: { renderBefore: this.renderHook, host, }, })"
            },
            {
              "kind": "method",
              "name": "hostConnected"
            },
            {
              "kind": "method",
              "name": "hostUpdated"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "PortalController",
          "declaration": {
            "name": "PortalController",
            "module": "src/common/controllers/PortalController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/ResizeController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ResizeController",
          "members": [
            {
              "kind": "field",
              "name": "observer",
              "type": {
                "text": "ResizeObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "hadFirstUpdate",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "borderBoxSize",
              "type": {
                "text": "ResizeObserverSize | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "inlineSize",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "blockSize",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "hostUpdated"
            },
            {
              "kind": "method",
              "name": "hostConnected"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ResizeController",
          "declaration": {
            "name": "ResizeController",
            "module": "src/common/controllers/ResizeController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/ScrollbarController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "We can have any number of components open at a time, all of which lock scroll.\nConsider multiple modals being open, plus some popouts, etc.\n\nSo we need some bookkeeping to know when to unlock scroll...\n\nBut we can't simply keep a count of how many components are open,\nsince a misbehaving component may call lockScroll() multiple times.\n\nNor can we rely on the first component to call lockScroll() to be the last to unlockScroll(),\nsince we cannot guarantee order of operations.\n\nTherefore, we track instances of ScrollbarController in a Set,\nand only unlock scroll when the set is empty.\n\nWe also need to be careful to restore any styles that were there\nbefore we locked scroll.",
          "name": "ScrollbarController",
          "members": [
            {
              "kind": "field",
              "name": "locks",
              "privacy": "private",
              "static": true,
              "default": "new Set<ScrollbarController>()"
            },
            {
              "kind": "field",
              "name": "resets",
              "type": {
                "text": "Array<() => void>"
              },
              "privacy": "private",
              "static": true,
              "default": "[]"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            },
            {
              "kind": "method",
              "name": "lockScroll"
            },
            {
              "kind": "method",
              "name": "unlockScroll"
            },
            {
              "kind": "method",
              "name": "setStyle",
              "privacy": "private",
              "static": true,
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ScrollbarController",
          "declaration": {
            "name": "ScrollbarController",
            "module": "src/common/controllers/ScrollbarController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/ShortcutController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ShortcutController",
          "members": [
            {
              "kind": "field",
              "name": "unregister",
              "type": {
                "text": "ReturnType<typeof tinykeys> | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "hostConnected"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            },
            {
              "kind": "method",
              "name": "unbind"
            },
            {
              "kind": "method",
              "name": "bind",
              "parameters": [
                {
                  "name": "shortcuts",
                  "type": {
                    "text": "KeyBindingMap"
                  }
                }
              ]
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ShortcutController",
          "declaration": {
            "name": "ShortcutController",
            "module": "src/common/controllers/ShortcutController.ts"
          }
        },
        {
          "kind": "js",
          "name": "ShortcutMap",
          "declaration": {
            "name": "KeyBindingMap",
            "module": "src/common/controllers/ShortcutController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/SlotController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "SlotController",
          "members": [
            {
              "kind": "field",
              "name": "events",
              "type": {
                "text": "EventController"
              },
              "privacy": "private",
              "default": "new EventController(host)"
            },
            {
              "kind": "field",
              "name": "selector",
              "type": {
                "text": "string"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "hostConnected"
            },
            {
              "kind": "field",
              "name": "hasContent",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "isEmpty",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "content",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "assigned",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleSlotChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "_e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SlotController",
          "declaration": {
            "name": "SlotController",
            "module": "src/common/controllers/SlotController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/controllers/SwipeController.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "SwipeController",
          "members": [
            {
              "kind": "field",
              "name": "events",
              "type": {
                "text": "EventController"
              },
              "privacy": "private",
              "default": "new EventController(host)"
            },
            {
              "kind": "field",
              "name": "hadFirstUpdate",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "initialTouchX",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "initialTouchY",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "options",
              "type": {
                "text": "SetRequired<SwipeControllerOptions, 'target'>"
              },
              "privacy": "private",
              "default": "{ target: () => host, ...options, }"
            },
            {
              "kind": "method",
              "name": "hostUpdated"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            },
            {
              "kind": "field",
              "name": "handleTouchStart",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleTouchEnd",
              "privacy": "private"
            }
          ]
        },
        {
          "kind": "variable",
          "name": "distX"
        },
        {
          "kind": "variable",
          "name": "distY"
        },
        {
          "kind": "function",
          "name": "isHorizontalSwipe",
          "parameters": [
            {
              "name": "{ distX, distY }",
              "type": {
                "text": "SwipeDetails"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "isDownwardsSwipe",
          "parameters": [
            {
              "name": "{ distX, distY }",
              "type": {
                "text": "SwipeDetails"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SwipeController",
          "declaration": {
            "name": "SwipeController",
            "module": "src/common/controllers/SwipeController.ts"
          }
        },
        {
          "kind": "js",
          "name": "isHorizontalSwipe",
          "declaration": {
            "name": "isHorizontalSwipe",
            "module": "src/common/controllers/SwipeController.ts"
          }
        },
        {
          "kind": "js",
          "name": "isDownwardsSwipe",
          "declaration": {
            "name": "isDownwardsSwipe",
            "module": "src/common/controllers/SwipeController.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/decorators/observe.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "observe",
          "parameters": [
            {
              "name": "propertyName",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "lifecycle",
              "default": "'update'",
              "type": {
                "text": "ObserveLifecycle"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "observe",
          "declaration": {
            "name": "observe",
            "module": "src/common/decorators/observe.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/directives/cond.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "cond",
          "return": {
            "type": {
              "text": "typeof value | typeof nothing"
            }
          },
          "parameters": [
            {
              "name": "value",
              "type": {
                "text": "any"
              }
            }
          ],
          "description": "if value is truthy, return it, otherwise return nothing"
        },
        {
          "kind": "function",
          "name": "cond",
          "return": {
            "type": {
              "text": "typeof trueCase | typeof nothing"
            }
          },
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "trueCase",
              "type": {
                "text": "any"
              }
            }
          ],
          "description": "if condition is truthy, return trueCase, otherwise return nothing"
        },
        {
          "kind": "function",
          "name": "cond",
          "return": {
            "type": {
              "text": "typeof trueCase"
            }
          },
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "true"
              }
            },
            {
              "name": "trueCase",
              "type": {
                "text": "any"
              }
            }
          ],
          "description": "condition is true, so always return trueCase"
        },
        {
          "kind": "function",
          "name": "cond",
          "return": {
            "type": {
              "text": "typeof nothing"
            }
          },
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "false"
              }
            },
            {
              "name": "trueCase",
              "type": {
                "text": "any"
              }
            }
          ],
          "description": "condition is false, to will always return nothing"
        },
        {
          "kind": "function",
          "name": "cond",
          "return": {
            "type": {
              "text": "typeof trueCase | typeof falseCase"
            }
          },
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "trueCase",
              "type": {
                "text": "any"
              }
            },
            {
              "name": "falseCase",
              "type": {
                "text": "any"
              }
            }
          ],
          "description": "if condition is truthy, return trueCase, otherwise return falseCase"
        },
        {
          "kind": "function",
          "name": "cond",
          "return": {
            "type": {
              "text": "typeof trueCase"
            }
          },
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "true"
              }
            },
            {
              "name": "trueCase",
              "type": {
                "text": "any"
              }
            },
            {
              "name": "falseCase",
              "type": {
                "text": "any"
              }
            }
          ],
          "description": "condition is true, so always return trueCase"
        },
        {
          "kind": "function",
          "name": "cond",
          "return": {
            "type": {
              "text": "typeof falseCase"
            }
          },
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "false"
              }
            },
            {
              "name": "trueCase",
              "type": {
                "text": "any"
              }
            },
            {
              "name": "falseCase",
              "type": {
                "text": "any"
              }
            }
          ],
          "description": "condition is false, so always return falseCase"
        },
        {
          "kind": "function",
          "name": "cond",
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "trueCase",
              "default": "condition",
              "type": {
                "text": "any"
              }
            },
            {
              "name": "falseCase",
              "default": "nothing",
              "type": {
                "text": "any"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "cond",
          "declaration": {
            "name": "cond",
            "module": "src/common/directives/cond.ts"
          }
        },
        {
          "kind": "js",
          "name": "cond",
          "declaration": {
            "name": "cond",
            "module": "src/common/directives/cond.ts"
          }
        },
        {
          "kind": "js",
          "name": "cond",
          "declaration": {
            "name": "cond",
            "module": "src/common/directives/cond.ts"
          }
        },
        {
          "kind": "js",
          "name": "cond",
          "declaration": {
            "name": "cond",
            "module": "src/common/directives/cond.ts"
          }
        },
        {
          "kind": "js",
          "name": "cond",
          "declaration": {
            "name": "cond",
            "module": "src/common/directives/cond.ts"
          }
        },
        {
          "kind": "js",
          "name": "cond",
          "declaration": {
            "name": "cond",
            "module": "src/common/directives/cond.ts"
          }
        },
        {
          "kind": "js",
          "name": "cond",
          "declaration": {
            "name": "cond",
            "module": "src/common/directives/cond.ts"
          }
        },
        {
          "kind": "js",
          "name": "cond",
          "declaration": {
            "name": "cond",
            "module": "src/common/directives/cond.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/directives/wrapIf.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "wrapIf",
          "return": {
            "type": {
              "text": "TInner"
            }
          },
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "false"
              }
            },
            {
              "name": "inner",
              "type": {
                "text": "() => TInner"
              }
            },
            {
              "name": "wrapper",
              "type": {
                "text": "(inner: TInner) => TWrapper"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "wrapIf",
          "return": {
            "type": {
              "text": "TWrapper"
            }
          },
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "true"
              }
            },
            {
              "name": "inner",
              "type": {
                "text": "() => TInner"
              }
            },
            {
              "name": "wrapper",
              "type": {
                "text": "(inner: TInner) => TWrapper"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "wrapIf",
          "return": {
            "type": {
              "text": "TInner | TWrapper"
            }
          },
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "unknown"
              }
            },
            {
              "name": "inner",
              "type": {
                "text": "() => TInner"
              }
            },
            {
              "name": "wrapper",
              "type": {
                "text": "(inner: TInner) => TWrapper"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "wrapIf",
          "parameters": [
            {
              "name": "condition",
              "type": {
                "text": "any"
              }
            },
            {
              "name": "inner",
              "type": {
                "text": "() => TInner"
              }
            },
            {
              "name": "wrapper",
              "type": {
                "text": "(innards: TInner) => TWrapper"
              }
            }
          ],
          "return": {
            "type": {
              "text": ""
            }
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "wrapIf",
          "declaration": {
            "name": "wrapIf",
            "module": "src/common/directives/wrapIf.ts"
          }
        },
        {
          "kind": "js",
          "name": "wrapIf",
          "declaration": {
            "name": "wrapIf",
            "module": "src/common/directives/wrapIf.ts"
          }
        },
        {
          "kind": "js",
          "name": "wrapIf",
          "declaration": {
            "name": "wrapIf",
            "module": "src/common/directives/wrapIf.ts"
          }
        },
        {
          "kind": "js",
          "name": "wrapIf",
          "declaration": {
            "name": "wrapIf",
            "module": "src/common/directives/wrapIf.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/mixins/AutocompleteMixin.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "AutocompleteMixinInterface",
          "members": [
            {
              "kind": "field",
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              }
            }
          ]
        },
        {
          "kind": "mixin",
          "description": "",
          "name": "AutocompleteMixin",
          "members": [
            {
              "kind": "field",
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              },
              "default": "'off'",
              "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
              "attribute": "autocomplete"
            }
          ],
          "attributes": [
            {
              "name": "autocomplete",
              "type": {
                "text": "AutocompleteAttribute"
              },
              "default": "'off'",
              "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
              "fieldName": "autocomplete"
            }
          ],
          "parameters": [
            {
              "name": "superClass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "AutocompleteMixinInterface",
          "declaration": {
            "name": "AutocompleteMixinInterface",
            "module": "src/common/mixins/AutocompleteMixin.ts"
          }
        },
        {
          "kind": "js",
          "name": "AutocompleteMixin",
          "declaration": {
            "name": "AutocompleteMixin",
            "module": "src/common/mixins/AutocompleteMixin.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/mixins/DraftComponentMixin.ts",
      "declarations": [
        {
          "kind": "mixin",
          "description": "",
          "name": "DraftComponentMixin",
          "members": [
            {
              "kind": "field",
              "name": "_warningLogged",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "static": true,
              "default": "false"
            }
          ],
          "parameters": [
            {
              "name": "superClass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DraftComponentMixin",
          "declaration": {
            "name": "DraftComponentMixin",
            "module": "src/common/mixins/DraftComponentMixin.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/mixins/FloatingComponentMixin.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FloatingMixinInterface",
          "members": [
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "align",
              "type": {
                "text": "Alignment"
              }
            },
            {
              "kind": "field",
              "name": "position",
              "type": {
                "text": "LogicalSide | 'auto'"
              }
            }
          ]
        },
        {
          "kind": "mixin",
          "description": "",
          "name": "FloatingMixin",
          "members": [
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the component is open or not.",
              "attribute": "open",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "align",
              "type": {
                "text": "'start' | 'end'"
              },
              "default": "'start'",
              "description": "Set the alignment in relation to the toggle (or anchor) depending on the position.\n`start` will align it to the left of the toggle (or anchor).\n`end` will align it to the right of the toggle (or anchor).\nSetting the `position` to `inline-start` or `inline-end` will switch\n`start` and `end` to the top and bottom respectively.",
              "attribute": "align",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "position",
              "type": {
                "text": "'block-end' | 'block-start' | 'inline-start' | 'inline-end' | 'auto'"
              },
              "default": "'block-end'",
              "description": "Set the position in relation to the toggle (or anchor).\nOptions follow logical properties.\n`block-start` and `block-end` referring to top and bottom respectively,\n`inline-start` and `inline-end` referring to left and right respectively.\nYou can also set it to `auto` for automatic positioning depending on\nwhich side has the most space available.",
              "attribute": "position",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controls whether the component is open or not.",
              "fieldName": "open"
            },
            {
              "name": "align",
              "type": {
                "text": "'start' | 'end'"
              },
              "default": "'start'",
              "description": "Set the alignment in relation to the toggle (or anchor) depending on the position.\n`start` will align it to the left of the toggle (or anchor).\n`end` will align it to the right of the toggle (or anchor).\nSetting the `position` to `inline-start` or `inline-end` will switch\n`start` and `end` to the top and bottom respectively.",
              "fieldName": "align"
            },
            {
              "name": "position",
              "type": {
                "text": "'block-end' | 'block-start' | 'inline-start' | 'inline-end' | 'auto'"
              },
              "default": "'block-end'",
              "description": "Set the position in relation to the toggle (or anchor).\nOptions follow logical properties.\n`block-start` and `block-end` referring to top and bottom respectively,\n`inline-start` and `inline-end` referring to left and right respectively.\nYou can also set it to `auto` for automatic positioning depending on\nwhich side has the most space available.",
              "fieldName": "position"
            }
          ],
          "parameters": [
            {
              "name": "superClass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FloatingMixinInterface",
          "declaration": {
            "name": "FloatingMixinInterface",
            "module": "src/common/mixins/FloatingComponentMixin.ts"
          }
        },
        {
          "kind": "js",
          "name": "FloatingMixin",
          "declaration": {
            "name": "FloatingMixin",
            "module": "src/common/mixins/FloatingComponentMixin.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/mixins/FocusableMixin.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FocusableMixinInterface",
          "members": [
            {
              "kind": "field",
              "name": "focusableRef",
              "type": {
                "text": "Ref<HTMLElement>"
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "focus",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "blur",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "click",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            }
          ]
        },
        {
          "kind": "mixin",
          "description": "",
          "name": "FocusableMixin",
          "members": [
            {
              "kind": "field",
              "name": "focusableRef",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "focus",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "FocusOptions"
                  },
                  "description": "An object which controls aspects of the focusing process."
                }
              ],
              "description": "Programmatically move focus to the component."
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Programmatically remove focus from the component."
            },
            {
              "kind": "method",
              "name": "click",
              "description": "Programmatically simulates a click on the component."
            }
          ],
          "parameters": [
            {
              "name": "superClass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FocusableMixinInterface",
          "declaration": {
            "name": "FocusableMixinInterface",
            "module": "src/common/mixins/FocusableMixin.ts"
          }
        },
        {
          "kind": "js",
          "name": "FocusableMixin",
          "declaration": {
            "name": "FocusableMixin",
            "module": "src/common/mixins/FocusableMixin.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/mixins/FormAssociatedMixin.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FormAssociatedMixinInterface",
          "members": [
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "errorId",
              "type": {
                "text": "string"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "hintId",
              "type": {
                "text": "string"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "labelSlot",
              "type": {
                "text": "SlotController"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "type": {
                "text": "SlotController"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "errorSlot",
              "type": {
                "text": "SlotController"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "formData",
              "type": {
                "text": "FormDataController"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "formValue",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "hasError",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "hasHint",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "parameters": [
                {
                  "name": "additionalContent",
                  "optional": true,
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderError",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "string | undefined"
                }
              }
            },
            {
              "kind": "method",
              "name": "getInvalid",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "'true' | undefined"
                }
              }
            }
          ]
        },
        {
          "kind": "mixin",
          "description": "",
          "name": "FormAssociatedMixin",
          "members": [
            {
              "kind": "field",
              "name": "labelSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'label')"
            },
            {
              "kind": "field",
              "name": "errorSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'error')"
            },
            {
              "kind": "field",
              "name": "hintSlot",
              "privacy": "protected",
              "default": "new SlotController(this, 'hint')"
            },
            {
              "kind": "field",
              "name": "formData",
              "privacy": "protected",
              "default": "new FormDataController(this, { value: () => this.formValue })"
            },
            {
              "kind": "field",
              "name": "formValue",
              "privacy": "protected",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'input'"
            },
            {
              "kind": "field",
              "name": "errorId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'error'"
            },
            {
              "kind": "field",
              "name": "hintId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "default": "'hint'"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "attribute": "hint",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "hideLabel",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "attribute": "hide-label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "attribute": "placeholder",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "attribute": "error",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "attribute": "required",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "hideRequired",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "attribute": "hide-required",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "handleInput",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "additionalContent",
                  "optional": true,
                  "type": {
                    "text": "TemplateResult"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderError",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "getInvalid",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "hasHint",
              "privacy": "protected",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "hasError",
              "privacy": "protected",
              "readonly": true
            }
          ],
          "events": [
            {
              "name": "input",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired as the user types into the input."
            },
            {
              "name": "change",
              "type": {
                "text": "NordEvent"
              },
              "description": "Fired whenever the input's value is changed via user interaction."
            }
          ],
          "attributes": [
            {
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Label for the input.",
              "fieldName": "label"
            },
            {
              "name": "hint",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
              "fieldName": "hint"
            },
            {
              "name": "hide-label",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
              "fieldName": "hideLabel"
            },
            {
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Placeholder text to display within the input.",
              "fieldName": "placeholder"
            },
            {
              "name": "error",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional error to be shown with the input. Alternatively use the error slot.",
              "fieldName": "error"
            },
            {
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
              "fieldName": "required"
            },
            {
              "name": "hide-required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Visually hide the required indicator, but still show\nrequired attribute to assistive technologies like screen readers.",
              "fieldName": "hideRequired"
            }
          ],
          "parameters": [
            {
              "name": "superClass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormAssociatedMixinInterface",
          "declaration": {
            "name": "FormAssociatedMixinInterface",
            "module": "src/common/mixins/FormAssociatedMixin.ts"
          }
        },
        {
          "kind": "js",
          "name": "FormAssociatedMixin",
          "declaration": {
            "name": "FormAssociatedMixin",
            "module": "src/common/mixins/FormAssociatedMixin.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/mixins/InputMixin.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "InputMixinInterface",
          "members": [
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              }
            }
          ]
        },
        {
          "kind": "mixin",
          "description": "",
          "name": "InputMixin",
          "members": [
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "attribute": "name",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "attribute": "value"
            },
            {
              "kind": "field",
              "name": "formAncestor",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "_formId",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "attribute": "form"
            }
          ],
          "attributes": [
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
              "fieldName": "disabled"
            },
            {
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "The name of the form component.",
              "fieldName": "name"
            },
            {
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The value of the form component.",
              "fieldName": "value"
            },
            {
              "name": "form",
              "type": {
                "text": "HTMLFormElement | null"
              },
              "description": "Gets the form, if any, associated with the form element.\nThe setter accepts a string, which is the id of the form.",
              "fieldName": "form"
            }
          ],
          "parameters": [
            {
              "name": "superClass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "InputMixinInterface",
          "declaration": {
            "name": "InputMixinInterface",
            "module": "src/common/mixins/InputMixin.ts"
          }
        },
        {
          "kind": "js",
          "name": "InputMixin",
          "declaration": {
            "name": "InputMixin",
            "module": "src/common/mixins/InputMixin.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/mixins/NotificationMixin.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "NotificationMixinInterface",
          "members": [
            {
              "kind": "field",
              "name": "dismissed",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "notificationRef",
              "type": {
                "text": "Ref<HTMLElement>"
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "dismiss",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              }
            }
          ]
        },
        {
          "kind": "mixin",
          "description": "",
          "name": "NotificationMixin",
          "members": [
            {
              "kind": "field",
              "name": "notificationRef",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "dismissed",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "dismiss",
              "description": "Programmatically dismiss the notification.\nThe returned promise resolves when notification's exit animation is complete."
            }
          ],
          "events": [
            {
              "name": "dismiss",
              "type": {
                "text": "NordEvent"
              }
            }
          ],
          "parameters": [
            {
              "name": "superClass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "NotificationMixinInterface",
          "declaration": {
            "name": "NotificationMixinInterface",
            "module": "src/common/mixins/NotificationMixin.ts"
          }
        },
        {
          "kind": "js",
          "name": "NotificationMixin",
          "declaration": {
            "name": "NotificationMixin",
            "module": "src/common/mixins/NotificationMixin.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/mixins/ReadonlyMixin.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ReadonlyMixinInterface",
          "members": [
            {
              "kind": "field",
              "name": "readonly",
              "type": {
                "text": "boolean"
              }
            }
          ]
        },
        {
          "kind": "mixin",
          "description": "",
          "name": "ReadonlyMixin",
          "members": [
            {
              "kind": "field",
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
              "attribute": "readonly",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
              "fieldName": "readonly"
            }
          ],
          "parameters": [
            {
              "name": "superClass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ReadonlyMixinInterface",
          "declaration": {
            "name": "ReadonlyMixinInterface",
            "module": "src/common/mixins/ReadonlyMixin.ts"
          }
        },
        {
          "kind": "js",
          "name": "ReadonlyMixin",
          "declaration": {
            "name": "ReadonlyMixin",
            "module": "src/common/mixins/ReadonlyMixin.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/mixins/SizeMixin.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "SizeMixinInterface",
          "members": [
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              }
            }
          ]
        },
        {
          "kind": "mixin",
          "description": "",
          "name": "SizeMixin",
          "members": [
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "attribute": "size",
              "reflects": true
            }
          ],
          "attributes": [
            {
              "name": "size",
              "type": {
                "text": "'s' | 'm' | 'l'"
              },
              "default": "'m'",
              "description": "The size of the component.",
              "fieldName": "size"
            }
          ],
          "parameters": [
            {
              "name": "superClass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SizeMixinInterface",
          "declaration": {
            "name": "SizeMixinInterface",
            "module": "src/common/mixins/SizeMixin.ts"
          }
        },
        {
          "kind": "js",
          "name": "SizeMixin",
          "declaration": {
            "name": "SizeMixin",
            "module": "src/common/mixins/SizeMixin.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/common/mixins/TextSelectableMixin.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "TextSelectableMixinInterface",
          "members": [
            {
              "kind": "field",
              "name": "textSelectableRef",
              "type": {
                "text": "Ref<HTMLInputElement | HTMLTextAreaElement>"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "selectionStart",
              "type": {
                "text": "number | null"
              }
            },
            {
              "kind": "field",
              "name": "selectionEnd",
              "type": {
                "text": "number | null"
              }
            },
            {
              "kind": "method",
              "name": "select",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "setSelectionRange",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "start",
                  "type": {
                    "text": "number | null"
                  }
                },
                {
                  "name": "end",
                  "type": {
                    "text": "number | null"
                  }
                },
                {
                  "name": "direction",
                  "optional": true,
                  "type": {
                    "text": "'forward' | 'backward' | 'none'"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setRangeText",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "replacement",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "start",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "end",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "selectMode",
                  "optional": true,
                  "type": {
                    "text": "'select' | 'start' | 'end' | 'preserve'"
                  }
                }
              ]
            }
          ]
        },
        {
          "kind": "mixin",
          "description": "",
          "name": "TextSelectableMixin",
          "members": [
            {
              "kind": "field",
              "name": "textSelectableRef",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "selectionStart",
              "description": "Gets or sets the starting position or offset of a text selection.\n\n[MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/selectionStart)"
            },
            {
              "kind": "field",
              "name": "selectionEnd",
              "description": "Gets or sets the end position or offset of a text selection.\n\n[MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/selectionEnd)"
            },
            {
              "kind": "field",
              "name": "selectionDirection",
              "description": "Gets or sets the direction in which selection occurred.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/selectionDirection)"
            },
            {
              "kind": "method",
              "name": "select",
              "description": "Selects all the text in the text field.\n\n[MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select)"
            },
            {
              "kind": "method",
              "name": "setSelectionRange",
              "parameters": [
                {
                  "name": "start",
                  "type": {
                    "text": "number | null"
                  },
                  "description": "The offset into the text field for the start of the selection."
                },
                {
                  "name": "end",
                  "type": {
                    "text": "number | null"
                  },
                  "description": "The offset into the text field for the end of the selection."
                },
                {
                  "name": "direction",
                  "optional": true,
                  "type": {
                    "text": "'forward' | 'backward' | 'none'"
                  },
                  "description": "The direction in which the selection is performed."
                }
              ],
              "description": "Sets the start and end positions of a selection in the text field.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setSelectionRange)"
            },
            {
              "kind": "method",
              "name": "setRangeText",
              "parameters": [
                {
                  "name": "replacement",
                  "type": {
                    "text": "string"
                  },
                  "description": "The string to insert."
                },
                {
                  "name": "start",
                  "optional": true,
                  "type": {
                    "text": "number"
                  },
                  "description": "The 0-based index of the first character to replace. Defaults to the current `selectionStart` value (the start of the user's current selection)."
                },
                {
                  "name": "end",
                  "optional": true,
                  "type": {
                    "text": "number"
                  },
                  "description": "The 0-based index of the character after the last character to replace. Defaults to the current `selectionEnd` value (the end of the user's current selection)."
                },
                {
                  "name": "selectMode",
                  "default": "'preserve'",
                  "type": {
                    "text": "'select' | 'start' | 'end' | 'preserve'"
                  },
                  "description": "A string defining how the selection should be set after the text has been replaced."
                }
              ],
              "description": "Replaces a range of text with a new string.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setRangeText)"
            },
            {
              "kind": "method",
              "name": "getNativeElement",
              "description": "Returns the native `<input>` or `<textarea>` element used under the hood."
            }
          ],
          "parameters": [
            {
              "name": "superClass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "TextSelectableMixinInterface",
          "declaration": {
            "name": "TextSelectableMixinInterface",
            "module": "src/common/mixins/TextSelectableMixin.ts"
          }
        },
        {
          "kind": "js",
          "name": "TextSelectableMixin",
          "declaration": {
            "name": "TextSelectableMixin",
            "module": "src/common/mixins/TextSelectableMixin.ts"
          }
        }
      ]
    }
  ]
}
