From 84923c8ffb650019e4f5664734ade9ac0005ca46 Mon Sep 17 00:00:00 2001 From: Emilio Mariscal Date: Mon, 9 Sep 2024 19:16:57 -0300 Subject: [PATCH 01/11] Big refactor, all things working --- .storybook-react/main.ts | 16 + .storybook-react/preview.ts | 15 + .../static/assets/icons/check2-circle.svg | 4 + .../assets/icons/exclamation-octagon.svg | 4 + .storybook-react/stories/button.stories.ts | 36 + .storybook-react/stories/header.stories.ts | 76 + .storybook-react/stories/logo.ts | 18 + .storybook-react/stories/toolbar.stories.ts | 17 + .storybook/main.ts | 4 +- .storybook/stories/button.stories.ts | 18 +- .storybook/stories/header.stories.ts | 12 - .storybook/stories/toolbar.stories.ts | 3 - .storybook/stories/tracking.stories.ts | 7 - components/header/header.styles.ts | 43 + components/header/header.ts | 53 +- components/header/styles.ts | 40 - components/icons.ts | 2 +- components/index.ts | 125 +- components/logo/logo.styles.ts | 6 + components/logo/logo.ts | 24 +- components/react/Header.ts | 16 + components/react/Logo.ts | 15 + components/react/Toolbar.ts | 24 + components/react/Tracking.ts | 17 + components/react/index.ts | 63 + components/toolbar/toolbar.styles.ts | 6 + components/toolbar/toolbar.ts | 38 +- components/tracking/tracking.styles.ts | 23 + components/tracking/tracking.ts | 53 +- examples/html/index.html | 5 +- examples/html/package.json | 2 +- examples/html/pnpm-lock.yaml | 487 -- examples/react/package.json | 5 +- examples/react/pnpm-lock.yaml | 1112 ---- examples/react/src/App.tsx | 107 +- examples/react/src/app.css | 11 +- examples/react/vite.config.ts | 10 +- examples/react19/package.json | 5 +- examples/react19/pnpm-lock.yaml | 1068 ---- examples/react19/src/App.tsx | 125 +- examples/svelte/package.json | 2 +- examples/svelte/pnpm-lock.yaml | 1204 ---- examples/svelte/src/App.svelte | 90 +- examples/vue/package.json | 2 +- examples/vue/pnpm-lock.yaml | 965 --- examples/vue/src/App.vue | 7 +- package.json | 39 +- pnpm-lock.yaml | 5455 +++++++---------- postcss.config.cjs | 5 - theme/{hot.css => hot-sl.css} | 4 +- tsconfig.json | 5 +- vite.config.ts | 7 +- 52 files changed, 3043 insertions(+), 8457 deletions(-) create mode 100644 .storybook-react/main.ts create mode 100644 .storybook-react/preview.ts create mode 100644 .storybook-react/static/assets/icons/check2-circle.svg create mode 100644 .storybook-react/static/assets/icons/exclamation-octagon.svg create mode 100644 .storybook-react/stories/button.stories.ts create mode 100644 .storybook-react/stories/header.stories.ts create mode 100644 .storybook-react/stories/logo.ts create mode 100644 .storybook-react/stories/toolbar.stories.ts create mode 100644 components/header/header.styles.ts delete mode 100644 components/header/styles.ts create mode 100644 components/logo/logo.styles.ts create mode 100644 components/react/Header.ts create mode 100644 components/react/Logo.ts create mode 100644 components/react/Toolbar.ts create mode 100644 components/react/Tracking.ts create mode 100644 components/react/index.ts create mode 100644 components/toolbar/toolbar.styles.ts create mode 100644 components/tracking/tracking.styles.ts delete mode 100644 examples/html/pnpm-lock.yaml delete mode 100644 examples/react/pnpm-lock.yaml delete mode 100644 examples/react19/pnpm-lock.yaml delete mode 100644 examples/svelte/pnpm-lock.yaml delete mode 100644 examples/vue/pnpm-lock.yaml delete mode 100644 postcss.config.cjs rename theme/{hot.css => hot-sl.css} (98%) diff --git a/.storybook-react/main.ts b/.storybook-react/main.ts new file mode 100644 index 00000000..3a88cd7c --- /dev/null +++ b/.storybook-react/main.ts @@ -0,0 +1,16 @@ +import type { StorybookConfig } from "@storybook/react-vite"; + +const config: StorybookConfig = { + stories: ["./stories/**/*.stories.ts"], + staticDirs: ["./static"], + addons: ["@storybook/addon-links", "@storybook/addon-essentials"], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + core: { + disableTelemetry: true, + } +}; +export default config; + diff --git a/.storybook-react/preview.ts b/.storybook-react/preview.ts new file mode 100644 index 00000000..d7088557 --- /dev/null +++ b/.storybook-react/preview.ts @@ -0,0 +1,15 @@ +import type { Preview } from "@storybook/react"; + +const preview: Preview = { + parameters: { + actions: { argTypesRegex: "^on[A-Z].*" }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + }, +}; + +export default preview; \ No newline at end of file diff --git a/.storybook-react/static/assets/icons/check2-circle.svg b/.storybook-react/static/assets/icons/check2-circle.svg new file mode 100644 index 00000000..13569621 --- /dev/null +++ b/.storybook-react/static/assets/icons/check2-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.storybook-react/static/assets/icons/exclamation-octagon.svg b/.storybook-react/static/assets/icons/exclamation-octagon.svg new file mode 100644 index 00000000..0bc23130 --- /dev/null +++ b/.storybook-react/static/assets/icons/exclamation-octagon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.storybook-react/stories/button.stories.ts b/.storybook-react/stories/button.stories.ts new file mode 100644 index 00000000..c4748fa7 --- /dev/null +++ b/.storybook-react/stories/button.stories.ts @@ -0,0 +1,36 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { Button } from '../../components/react'; + +const meta = { + title: 'Button', + component: Button, +} satisfies Meta; + +export default meta; + + +export const Template: StoryObj = { + args: { + innerHTML: "Click me", + variant: "primary", + disabled: false, + onClick: () => console.log("Click!") + }, + argTypes: { + variant: { + options: ["default", "primary", "success", "neutral", "warning", "danger"], + control: { + type: "select", + }, + }, + disabled: { + options: [true, false], + control: { + type: "radio", + }, + }, + }, +}; + + diff --git a/.storybook-react/stories/header.stories.ts b/.storybook-react/stories/header.stories.ts new file mode 100644 index 00000000..e70edb09 --- /dev/null +++ b/.storybook-react/stories/header.stories.ts @@ -0,0 +1,76 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { hrefTo } from '@storybook/addon-links'; +import { Header } from '../../components/react/index'; + +const defaultLogo = ""; + +const twoTab = [ + { + label: 'GO TO HEADER PAGE', + clickEvent: async () => { + const url = await hrefTo('Button', 'Template'); + window.location.href = url; + } + }, + { + label: 'GO TO TRACKING PAGE', + clickEvent: async () => { + const url = await hrefTo('Tracking', 'Template'); + window.location.href = url; + } + } +]; + +const meta = { + title: 'Header', + component: Header, + args: { + size: "large", + title: "", + logo: defaultLogo, + drawer: true, + tabs: twoTab, + }, + argTypes: { + size: { + options: ["large", "small"], + control: { + type: "select", + }, + }, + title: { + options: ["", "Tasking Manager", "FMTM", "Drone Tasking Manager"], + control: { + type: "select", + }, + }, + logo: { + options: [defaultLogo, "data:image/png;base64,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"], + control: { + type: "select", + }, + }, + drawer: { + options: [true, false], + control: { + type: "radio", + }, + }, + tabs: { + options: { + '2 Tabs': twoTab, + }, + control: { + type: "select", + }, + }, + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Template: Story = { + args: {}, +}; + diff --git a/.storybook-react/stories/logo.ts b/.storybook-react/stories/logo.ts new file mode 100644 index 00000000..4739677f --- /dev/null +++ b/.storybook-react/stories/logo.ts @@ -0,0 +1,18 @@ + +import type { Meta, StoryObj } from '@storybook/react'; + +import { Logo } from '../../components/react/index'; + +const meta = { + title: 'Logo', + component: Logo, +} satisfies Meta; + +export default meta; + +export const Template: StoryObj = { + args: {}, + argTypes: {}, +}; + + diff --git a/.storybook-react/stories/toolbar.stories.ts b/.storybook-react/stories/toolbar.stories.ts new file mode 100644 index 00000000..8560729e --- /dev/null +++ b/.storybook-react/stories/toolbar.stories.ts @@ -0,0 +1,17 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { Toolbar } from '../../components/react/index'; + +const meta = { + title: 'Toolbar', + component: Toolbar, + argTypes: {}, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Template: Story = { + args: {}, +}; + diff --git a/.storybook/main.ts b/.storybook/main.ts index dbb9cbc6..8bfc6dd4 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -8,6 +8,8 @@ const config: StorybookConfig = { name: "@storybook/web-components-vite", options: {}, }, - docs: {}, + core: { + disableTelemetry: true, + } }; export default config; diff --git a/.storybook/stories/button.stories.ts b/.storybook/stories/button.stories.ts index 9fc217f5..5c7b12c8 100644 --- a/.storybook/stories/button.stories.ts +++ b/.storybook/stories/button.stories.ts @@ -30,29 +30,13 @@ export const Template: StoryObj = { }, }, }, - parameters: { - showToast: () => { - const alert = document.getElementById("click-toast"); - if (alert) { - alert.show(); - } - }, - }, render: (args, { parameters }) => { return html` -

Button

{parameters.showToast()}} + @click=${() => {console.log("click!")}} ?disabled=${args.disabled} >${args.text} - -
-
- - - You clicked the button. - `; }, }; diff --git a/.storybook/stories/header.stories.ts b/.storybook/stories/header.stories.ts index bbe3a994..e443a0ab 100644 --- a/.storybook/stories/header.stories.ts +++ b/.storybook/stories/header.stories.ts @@ -98,18 +98,6 @@ export const Template: StoryObj = { ?drawer=${args.drawer} .tabs=${args.tabs} > - -

- Page Content -

-

- 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 velit esse cillum dolore eu fugiat nulla pariatur. Excepteur - sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est - laborum. -

`; }, }; diff --git a/.storybook/stories/toolbar.stories.ts b/.storybook/stories/toolbar.stories.ts index 8d68c94c..b4224e01 100644 --- a/.storybook/stories/toolbar.stories.ts +++ b/.storybook/stories/toolbar.stories.ts @@ -22,9 +22,6 @@ export const Template: StoryObj = { }, render: (args) => { return html` -

Toolbar

-
-
{alert("Redo Clicked")}} diff --git a/.storybook/stories/tracking.stories.ts b/.storybook/stories/tracking.stories.ts index fb39d5dd..3ce49d6e 100644 --- a/.storybook/stories/tracking.stories.ts +++ b/.storybook/stories/tracking.stories.ts @@ -50,13 +50,6 @@ export const Template: StoryObj = { }, render: (args, { parameters }) => { return html` -

Matomo Tracking Banner

- The banner is disabled if a local storage key is set. -
- Click the buttons below to enable/disable and refresh the page. -
-
- { parameters.removeKeyLocalStorage(args.siteId) }}>Re-Enable Banner diff --git a/components/header/header.styles.ts b/components/header/header.styles.ts new file mode 100644 index 00000000..a9ef875e --- /dev/null +++ b/components/header/header.styles.ts @@ -0,0 +1,43 @@ +import { css } from 'lit'; + +export default css` + .header { + display: flex; + } + + .header--link { + text-decoration: none; + } + + .header--title { + } + + .header--tab-group { + flex-direction: column; + } + + .header--nav { + justify-content: space-between; + justify-items: center; + gap: 1rem; + font-weight: 600; + } + + .header--nav-mobile { + } + + .header--person-circle { + font-size: var(--sl-font-size-x-large); + } + + .header--drawer { + font-size: var(--sl-font-size-x-large) + } + + .header--right-section { + } + + .header--logo-img { + } +} +` diff --git a/components/header/header.ts b/components/header/header.ts index 3eaa82c4..5206f6ab 100644 --- a/components/header/header.ts +++ b/components/header/header.ts @@ -1,4 +1,4 @@ -import "../../theme/hot.css"; +import "../../theme/hot-sl.css"; import "@shoelace-style/shoelace/dist/components/icon-button/icon-button.js"; import "@shoelace-style/shoelace/dist/components/tab-panel/tab-panel.js"; @@ -6,8 +6,9 @@ import "@shoelace-style/shoelace/dist/components/tab-group/tab-group.js"; import "@shoelace-style/shoelace/dist/components/tab/tab.js"; import { LitElement, html } from "lit"; -import { property, state } from "lit/decorators.js"; -import { headerVariants, type sizes, styles} from "./styles"; +import { property } from "lit/decorators.js"; +import styles from './header.styles.js'; +import type { CSSResultGroup } from 'lit'; import registerBundledIcons from "../../components/icons"; @@ -20,26 +21,28 @@ interface MenuItem { export class Header extends LitElement { - @property() name = "hot-header"; + static styles: CSSResultGroup = [styles]; + + name = "hot-header"; /** Use a text-based title in the header. */ - @property({ type: String }) title: string = ""; + @property({ type: String }) + accessor title: string = ""; /** Display a logo on the left of the header. */ - @property({ type: String }) logo: string | URL = ""; + @property({ type: String }) + accessor logo: string | URL = ""; /** Add a drawer icon with a click event to e.g. open a sidebar. */ - @property({ type: Boolean }) drawer: boolean = true; + @property({ type: Boolean }) + accessor drawer: boolean = true; /** Array of menu items to include as navigation tabs. */ - @property({ type: Array }) tabs: MenuItem[] = []; - - /** Size of toolbar vertically. */ - @property({ type: String }) size: sizes = "large"; - - @state() private selectedTab: number = 0; + @property({ type: Array }) + accessor tabs: MenuItem[] = []; - static styles = styles; + @property() + accessor selectedTab: number = 0; protected render() { const logoSrc = @@ -50,26 +53,26 @@ export class Header extends LitElement { : ""; return html` -
-
${logoSrc.length > 0 ? html` ` : html` - `} ${this.title.length > 0 ? html` -

+

${this.title}

` @@ -78,9 +81,9 @@ export class Header extends LitElement { ${/* Navigation bar for desktop, hide on mobile */ ""} -
+
{ this._handleLogin(e); @@ -117,7 +120,7 @@ export class Header extends LitElement { ? html` diff --git a/components/header/styles.ts b/components/header/styles.ts deleted file mode 100644 index a06e059a..00000000 --- a/components/header/styles.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { cva } from "class-variance-authority"; -import { css } from "lit"; - -export const headerVariants = cva( - // Defaults to include in all variants - ` - hot-flex hot-flex-row hot-bg-[var(--sl-color-white)] hot-items-center hot-justify-between - hot-sm:justify-around hot-p-2 hot-border-b-2 hot-border-b-gray-100 hot-border-b-solid - `, - { - variants: { - size: { - small: "hot-h-8", - large: "hot-h-14", - }, - }, - } -); - -export type sizes = "small" | "large"; - -export const styles = [ - css` - @unocss-placeholder; - `, - css` - - .logo-link { - text-decoration: none; - } - - sl-tab-group { - display: flex; - } - - sl-tab::part(base) { - font-size: var(--sl-font-size-2); - } - `, - ]; \ No newline at end of file diff --git a/components/icons.ts b/components/icons.ts index 64ece21c..1284f402 100644 --- a/components/icons.ts +++ b/components/icons.ts @@ -64,7 +64,7 @@ const icons = { - + ` }; diff --git a/components/index.ts b/components/index.ts index 4c9f8e2a..4fe6cb61 100644 --- a/components/index.ts +++ b/components/index.ts @@ -1,5 +1,4 @@ // Index to import all components together -// import '@hotosm/ui/components'; import { setBasePath } from '@shoelace-style/shoelace/dist/utilities/base-path.js'; @@ -200,67 +199,67 @@ export { // setBasePath helper to use the UI behind proxies etc setBasePath, // Standard shoelace components - SlAlert, - SlAnimatedImage, - SlAnimation, - SlAvatar, - SlBadge, - SlBreadcrumb, - SlBreadcrumbItem, - SlButton, - SlButtonGroup, - SlCard, - SlCarousel, - SlCarouselItem, - SlCheckbox, - SlColorPicker, - SlCopyButton, - SlDetails, - SlDialog, - SlDivider, - SlDrawer, - SlDropdown, - SlFormatBytes, - SlFormatDate, - SlFormatNumber, - SlIcon, - SlIconButton, - SlImageComparer, - SlInclude, - SlInput, - SlMenu, - SlMenuItem, - SlMenuLabel, - SlMutationObserver, - SlOption, - SlPopup, - SlProgressBar, - SlProgressRing, - SlQRCode, - SlRadio, - SlRadioButton, - SlRadioGroup, - SlRange, - SlRating, - SlRelativeTime, - SlResizeObserver, - SlSelect, - SlSkeleton, - SlSpinner, - SlSplitPanel, - SlSwitch, - SlTab, - SlTabGroup, - SlTabPanel, - SlTag, - SlTextarea, - SlTooltip, - SlTree, - SlTreeItem, - SlVisuallyHidden, + SlAlert as Alert, + SlAnimatedImage as AnimatedImage, + SlAnimation as Animation, + SlAvatar as Avatar, + SlBadge as Badge, + SlBreadcrumb as Breadcrumb, + SlBreadcrumbItem as BreadcrumbItem, + SlButton as Button, + SlButtonGroup as ButtonGroup, + SlCard as Card, + SlCarousel as Carousel, + SlCarouselItem as CarouselItem, + SlCheckbox as Checkbox, + SlColorPicker as ColorPicker, + SlCopyButton as CopyButton, + SlDetails as Details, + SlDialog as Dialog, + SlDivider as Divider, + SlDrawer as Drawer, + SlDropdown as Dropdown, + SlFormatBytes as FormatBytes, + SlFormatDate as FormatDate, + SlFormatNumber as FormatNumber, + SlIcon as Icon, + SlIconButton as IconButton, + SlImageComparer as ImageComparer, + SlInclude as Include, + SlInput as Input, + SlMenu as Menu, + SlMenuItem as MenuItem, + SlMenuLabel as MenuLabel, + SlMutationObserver as MutationObserver, + SlOption as Option, + SlPopup as Popup, + SlProgressBar as ProgressBar, + SlProgressRing as ProgressRing, + SlQRCode as QRCode, + SlRadio as Radio, + SlRadioButton as RadioButton, + SlRadioGroup as RadioGroup, + SlRange as Range, + SlRating as Rating, + SlRelativeTime as RelativeTime, + SlResizeObserver as ResizeObserver, + SlSelect as Select, + SlSkeleton as Skeleton, + SlSpinner as Spinner, + SlSplitPanel as SplitPanel, + SlSwitch as Switch, + SlTab as Tab, + SlTabGroup as TabGroup, + SlTabPanel as TabPanel, + SlTag as Tag, + SlTextarea as Textarea, + SlTooltip as Tooltip, + SlTree as Tree, + SlTreeItem as TreeItem, + SlVisuallyHidden as VisuallyHidden, // Custom composite components - HotHeader, - HotLogo, - HotToolbar, - HotTracking, + HotHeader as Header, + HotLogo as Logo, + HotToolbar as Toolbar, + HotTracking as Tracking, } diff --git a/components/logo/logo.styles.ts b/components/logo/logo.styles.ts new file mode 100644 index 00000000..dd3e5454 --- /dev/null +++ b/components/logo/logo.styles.ts @@ -0,0 +1,6 @@ +import { css } from 'lit'; + +export default css` + .logo { + } +` \ No newline at end of file diff --git a/components/logo/logo.ts b/components/logo/logo.ts index 6d2d7919..bcab1166 100644 --- a/components/logo/logo.ts +++ b/components/logo/logo.ts @@ -1,24 +1,30 @@ -import "../../theme/hot.css"; + +import HotLogoIconSVG from '../../theme/logo/hot-logo-icon.svg'; +import HotLogoTextSVG from '../../theme/logo/hot-logo-text.svg'; import { LitElement, html } from "lit"; import { property } from "lit/decorators.js"; +import styles from './logo.styles.js'; +import type { CSSResultGroup } from 'lit'; export class Logo extends LitElement { - @property() name = "hot-logo"; + static styles: CSSResultGroup = [styles]; + + name = 'hot-logo'; - /** Display the icon only */ - @property({ type: Boolean }) iconOnly: boolean = false; + @property({ type: Boolean }) + accessor iconOnly = false; - /** Display the text only */ - @property({ type: Boolean }) textOnly: boolean = false; + @property({ type: Boolean }) + accessor textOnly = false; protected render() { return html` -

- ${ !this.textOnly ? html`` : null } - ${ !this.iconOnly ? html`` : null } +

+ ${ !this.textOnly ? html`` : null } + ${ !this.iconOnly ? html`` : null }

`; } diff --git a/components/react/Header.ts b/components/react/Header.ts new file mode 100644 index 00000000..f0233cb2 --- /dev/null +++ b/components/react/Header.ts @@ -0,0 +1,16 @@ +// @ts-ignore +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import Header from '../header/header'; + +const reactWrapper = createComponent({ + tagName: 'hot-header', + elementClass: Header, + react: React, + events: { + onLogin: 'login', + }, + displayName: 'HotHeader' +}); + +export default reactWrapper; diff --git a/components/react/Logo.ts b/components/react/Logo.ts new file mode 100644 index 00000000..d6f0e8ea --- /dev/null +++ b/components/react/Logo.ts @@ -0,0 +1,15 @@ + +// @ts-ignore +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import Logo from '../logo/logo'; + +const reactWrapper = createComponent({ + tagName: 'hot-logo', + elementClass: Logo, + react: React, + events: {}, + displayName: 'HotLogo' +}); + +export default reactWrapper; diff --git a/components/react/Toolbar.ts b/components/react/Toolbar.ts new file mode 100644 index 00000000..4b27377d --- /dev/null +++ b/components/react/Toolbar.ts @@ -0,0 +1,24 @@ + +// @ts-ignore +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import Toolbar from '../toolbar/toolbar'; + +const reactWrapper = createComponent({ + tagName: 'hot-toolbar', + elementClass: Toolbar, + react: React, + events: { + onUndoClick: 'undo', + onRedoClick: 'redo', + onBoldClick: 'bold', + onItalicClick: 'italic', + onUnderlineClick: 'underline', + onLeftalignClick: 'leftalign', + onCenteralignClick: 'centeralign', + onRightalignClick: 'rightalign', + }, + displayName: 'HotToolbar' +}); + +export default reactWrapper; diff --git a/components/react/Tracking.ts b/components/react/Tracking.ts new file mode 100644 index 00000000..59b0e86e --- /dev/null +++ b/components/react/Tracking.ts @@ -0,0 +1,17 @@ +// @ts-ignore +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import Tracking from '../tracking/tracking'; + +const reactWrapper = createComponent({ + tagName: 'hot-tracking', + elementClass: Tracking, + react: React, + events: { + onAgree: 'agree', + onDisagree: 'disagree', + }, + displayName: 'HotTracking' +}); + +export default reactWrapper; diff --git a/components/react/index.ts b/components/react/index.ts new file mode 100644 index 00000000..c58b77bc --- /dev/null +++ b/components/react/index.ts @@ -0,0 +1,63 @@ +export { default as Header } from './Header'; +export { default as Toolbar } from './Toolbar'; +export { default as Tracking } from './Tracking'; +export { default as Logo } from './Logo'; + +export { default as Alert } from '@shoelace-style/shoelace/dist/react/alert/index.js'; +export { default as AnimatedImage } from '@shoelace-style/shoelace/dist/react/animated-image/index.js'; +export { default as Animation } from '@shoelace-style/shoelace/dist/react/animation/index.js'; +export { default as Avatar } from '@shoelace-style/shoelace/dist/react/avatar/index.js'; +export { default as Badge } from '@shoelace-style/shoelace/dist/react/badge/index.js'; +export { default as Breadcrumb } from '@shoelace-style/shoelace/dist/react/breadcrumb/index.js'; +export { default as BreadcrumbItem } from '@shoelace-style/shoelace/dist/react/breadcrumb-item/index.js'; +export { default as Button } from '@shoelace-style/shoelace/dist/react/button/index.js'; +export { default as ButtonGroup } from '@shoelace-style/shoelace/dist/react/button-group/index.js'; +export { default as Card } from '@shoelace-style/shoelace/dist/react/card/index.js'; +export { default as Carousel } from '@shoelace-style/shoelace/dist/react/carousel/index.js'; +export { default as CarouselItem } from '@shoelace-style/shoelace/dist/react/carousel-item/index.js'; +export { default as Checkbox } from '@shoelace-style/shoelace/dist/react/checkbox/index.js'; +export { default as ColorPicker } from '@shoelace-style/shoelace/dist/react/color-picker/index.js'; +export { default as CopyButton } from '@shoelace-style/shoelace/dist/react/copy-button/index.js'; +export { default as Details } from '@shoelace-style/shoelace/dist/react/details/index.js'; +export { default as Dialog } from '@shoelace-style/shoelace/dist/react/dialog/index.js'; +export { default as Divider } from '@shoelace-style/shoelace/dist/react/divider/index.js'; +export { default as Drawer } from '@shoelace-style/shoelace/dist/react/drawer/index.js'; +export { default as Dropdown } from '@shoelace-style/shoelace/dist/react/dropdown/index.js'; +export { default as FormatBytes } from '@shoelace-style/shoelace/dist/react/format-bytes/index.js'; +export { default as FormatDate } from '@shoelace-style/shoelace/dist/react/format-date/index.js'; +export { default as FormatNumber } from '@shoelace-style/shoelace/dist/react/format-number/index.js'; +export { default as Icon } from '@shoelace-style/shoelace/dist/react/icon/index.js'; +export { default as IconButton } from '@shoelace-style/shoelace/dist/react/icon-button/index.js'; +export { default as ImageComparer } from '@shoelace-style/shoelace/dist/react/image-comparer/index.js'; +export { default as Include } from '@shoelace-style/shoelace/dist/react/include/index.js'; +export { default as Input } from '@shoelace-style/shoelace/dist/react/input/index.js'; +export { default as Menu } from '@shoelace-style/shoelace/dist/react/menu/index.js'; +export { default as MenuItem } from '@shoelace-style/shoelace/dist/react/menu-item/index.js'; +export { default as MenuLabel } from '@shoelace-style/shoelace/dist/react/menu-label/index.js'; +export { default as MutationObserver } from '@shoelace-style/shoelace/dist/react/mutation-observer/index.js'; +export { default as Option } from '@shoelace-style/shoelace/dist/react/option/index.js'; +export { default as Popup } from '@shoelace-style/shoelace/dist/react/popup/index.js'; +export { default as ProgressBar } from '@shoelace-style/shoelace/dist/react/progress-bar/index.js'; +export { default as ProgressRing } from '@shoelace-style/shoelace/dist/react/progress-ring/index.js'; +export { default as QRCode } from '@shoelace-style/shoelace/dist/react/qr-code/index.js'; +export { default as Radio } from '@shoelace-style/shoelace/dist/react/radio/index.js'; +export { default as RadioButton } from '@shoelace-style/shoelace/dist/react/radio-button/index.js'; +export { default as RadioGroup } from '@shoelace-style/shoelace/dist/react/radio-group/index.js'; +export { default as Range } from '@shoelace-style/shoelace/dist/react/range/index.js'; +export { default as Rating } from '@shoelace-style/shoelace/dist/react/rating/index.js'; +export { default as RelativeTime } from '@shoelace-style/shoelace/dist/react/relative-time/index.js'; +export { default as ResizeObserver } from '@shoelace-style/shoelace/dist/react/resize-observer/index.js'; +export { default as Select } from '@shoelace-style/shoelace/dist/react/select/index.js'; +export { default as Skeleton } from '@shoelace-style/shoelace/dist/react/skeleton/index.js'; +export { default as Spinner } from '@shoelace-style/shoelace/dist/react/spinner/index.js'; +export { default as SplitPanel } from '@shoelace-style/shoelace/dist/react/split-panel/index.js'; +export { default as Switch } from '@shoelace-style/shoelace/dist/react/switch/index.js'; +export { default as Tab } from '@shoelace-style/shoelace/dist/react/tab/index.js'; +export { default as TabGroup } from '@shoelace-style/shoelace/dist/react/tab-group/index.js'; +export { default as TabPanel } from '@shoelace-style/shoelace/dist/react/tab-panel/index.js'; +export { default as Tag } from '@shoelace-style/shoelace/dist/react/tag/index.js'; +export { default as Textarea } from '@shoelace-style/shoelace/dist/react/textarea/index.js'; +export { default as Tooltip } from '@shoelace-style/shoelace/dist/react/tooltip/index.js'; +export { default as Tree } from '@shoelace-style/shoelace/dist/react/tree/index.js'; +export { default as TreeItem } from '@shoelace-style/shoelace/dist/react/tree-item/index.js'; +export { default as VisuallyHidden } from '@shoelace-style/shoelace/dist/react/visually-hidden/index.js'; diff --git a/components/toolbar/toolbar.styles.ts b/components/toolbar/toolbar.styles.ts new file mode 100644 index 00000000..fe1a7666 --- /dev/null +++ b/components/toolbar/toolbar.styles.ts @@ -0,0 +1,6 @@ +import { css } from 'lit'; + +export default css` + .toolbar { + } +` \ No newline at end of file diff --git a/components/toolbar/toolbar.ts b/components/toolbar/toolbar.ts index f8fffa0e..cce1c9f0 100644 --- a/components/toolbar/toolbar.ts +++ b/components/toolbar/toolbar.ts @@ -1,51 +1,33 @@ -import "../../theme/hot.css"; +import "../../theme/hot-sl.css"; import "@shoelace-style/shoelace/dist/components/button/button.js"; import "@shoelace-style/shoelace/dist/components/button-group/button-group.js"; import "@shoelace-style/shoelace/dist/components/icon/icon.js"; import "@shoelace-style/shoelace/dist/components/tooltip/tooltip.js"; -import { LitElement, css, html, unsafeCSS } from "lit"; +import { LitElement, html } from "lit"; import { property } from "lit/decorators.js"; +import styles from './toolbar.styles.js'; +import type { CSSResultGroup } from 'lit'; import registerBundledIcons from "../../components/icons"; registerBundledIcons(); -// import { cva } from "class-variance-authority"; +export class Toolbar extends LitElement { -// const toolbarStyle = cva( -// "some-css-var", -// { -// variants: { -// someProperty: { -// true: "some-css-var", -// false: "some-css-var", -// }, -// }, -// }, -// ); + static styles: CSSResultGroup = [styles]; -export class Toolbar extends LitElement { - @property() name = "hot-toolbar"; + name = "hot-toolbar"; /** Change the position of the tooltips relative to buttons. */ - @property({ type: String, attribute: "tooltip-position" }) tooltipPosition = + @property({ type: String, attribute: "tooltip-position" }) + accessor tooltipPosition = "top"; - static styles = [ - css` - @unocss-placeholder; - `, - // unsafeCSS(reset), - ]; - - // class=${toolbarStyle({ - // someProperty: this.someProperty, - // })} protected render() { return html` -
+
${this.renderButtonGroup("History", [ { content: "Undo", diff --git a/components/tracking/tracking.styles.ts b/components/tracking/tracking.styles.ts new file mode 100644 index 00000000..d90b5de4 --- /dev/null +++ b/components/tracking/tracking.styles.ts @@ -0,0 +1,23 @@ +import { css } from 'lit'; + +export default css` + .tracking { + position: absolute; + bottom: 20px; + left: 50%; + transform: translateX(-50%); + z-index: 1000; + width: 80vw; + text-align: center; + } + + .tracking--header { + font-weight: var(--sl-font-weight-bold); + font-size: var(--sl-font-size-large); + text-align: center; + } + + .tracking--link { + color: var(--sl-color-primary-700); + } +` \ No newline at end of file diff --git a/components/tracking/tracking.ts b/components/tracking/tracking.ts index e5b9a788..dc44e560 100644 --- a/components/tracking/tracking.ts +++ b/components/tracking/tracking.ts @@ -1,9 +1,11 @@ -import "../../theme/hot.css"; +import "../../theme/hot-sl.css"; import "@shoelace-style/shoelace/dist/components/alert/alert.js"; -import { LitElement, css, html, unsafeCSS } from "lit"; +import { LitElement, html } from "lit"; import { property, state } from "lit/decorators.js"; +import styles from './tracking.styles.js'; +import type { CSSResultGroup } from 'lit'; import registerBundledIcons from "../../components/icons"; @@ -16,45 +18,28 @@ declare global { } export class Tracking extends LitElement { - @property() name = "hot-tracking"; + + static styles: CSSResultGroup = [styles]; + + name = "hot-tracking"; /** The Matomo site id for tracking. */ - @property({ type: String, attribute: "site-id" }) siteId: string = ""; + @property({ type: String, attribute: "site-id" }) + accessor siteId: string = ""; /** The domains to apply tracking. */ - @property({ type: String }) domain: string = ""; + @property({ type: String }) + accessor domain: string = ""; /** Force display the banner. */ - @property({ type: Boolean }) force: boolean = false; - - @state() isOpen: boolean = true; + @property({ type: Boolean }) + accessor force: boolean = false; - static styles = [ - css` - @unocss-placeholder; - `, - - // Temp styles until UnoCSS setup - css` - #tracking-header { - font-weight: var(--sl-font-weight-bold); - font-size: var(--sl-font-size-large); - text-align: center; - } - sl-alert::part(base) { - position: absolute; - bottom: 20px; - left: 50%; - transform: translateX(-50%); - z-index: 1000; - width: 80vw; - text-align: center; - } - `, - ]; + @property({ type: Boolean }) + accessor isOpen: boolean = true; protected render() { - return html` + return html` -

About the information we collect

+

About the information we collect

We use cookies and similar technologies to recognize and analyze your visits, and measure traffic usage and activity. You can learn about how we use the data about your visit or information you provide reading our HOTOSM UI Svelte Example - - + - +

HTML Demo

Default Button Default Button diff --git a/examples/html/package.json b/examples/html/package.json index 6e1472d7..8f105660 100644 --- a/examples/html/package.json +++ b/examples/html/package.json @@ -4,7 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { - "get-js": "cd ../../ && pnpm run build && cp dist/components.js examples/html/public/components.js", + "get-js": "cd ../../ && pnpm run build && cp dist/hotosm-ui.js examples/html/public/hotosm-ui.js", "get-css": "cd ../../ && cp dist/style.css examples/html/public/style.css", "setup-dist": "pnpm run get-js && pnpm run get-css", "dev": "pnpm run setup-dist && vite" diff --git a/examples/html/pnpm-lock.yaml b/examples/html/pnpm-lock.yaml deleted file mode 100644 index ef85c3f3..00000000 --- a/examples/html/pnpm-lock.yaml +++ /dev/null @@ -1,487 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - devDependencies: - vite: - specifier: ^5.1.4 - version: 5.2.12 - -packages: - - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@rollup/rollup-android-arm-eabi@4.18.0': - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.18.0': - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.18.0': - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.18.0': - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.18.0': - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.18.0': - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.18.0': - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.18.0': - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.18.0': - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.18.0': - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.18.0': - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.18.0': - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} - cpu: [x64] - os: [win32] - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - vite@5.2.12: - resolution: {integrity: sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - -snapshots: - - '@esbuild/aix-ppc64@0.20.2': - optional: true - - '@esbuild/android-arm64@0.20.2': - optional: true - - '@esbuild/android-arm@0.20.2': - optional: true - - '@esbuild/android-x64@0.20.2': - optional: true - - '@esbuild/darwin-arm64@0.20.2': - optional: true - - '@esbuild/darwin-x64@0.20.2': - optional: true - - '@esbuild/freebsd-arm64@0.20.2': - optional: true - - '@esbuild/freebsd-x64@0.20.2': - optional: true - - '@esbuild/linux-arm64@0.20.2': - optional: true - - '@esbuild/linux-arm@0.20.2': - optional: true - - '@esbuild/linux-ia32@0.20.2': - optional: true - - '@esbuild/linux-loong64@0.20.2': - optional: true - - '@esbuild/linux-mips64el@0.20.2': - optional: true - - '@esbuild/linux-ppc64@0.20.2': - optional: true - - '@esbuild/linux-riscv64@0.20.2': - optional: true - - '@esbuild/linux-s390x@0.20.2': - optional: true - - '@esbuild/linux-x64@0.20.2': - optional: true - - '@esbuild/netbsd-x64@0.20.2': - optional: true - - '@esbuild/openbsd-x64@0.20.2': - optional: true - - '@esbuild/sunos-x64@0.20.2': - optional: true - - '@esbuild/win32-arm64@0.20.2': - optional: true - - '@esbuild/win32-ia32@0.20.2': - optional: true - - '@esbuild/win32-x64@0.20.2': - optional: true - - '@rollup/rollup-android-arm-eabi@4.18.0': - optional: true - - '@rollup/rollup-android-arm64@4.18.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.18.0': - optional: true - - '@rollup/rollup-darwin-x64@4.18.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.18.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.18.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.18.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.18.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.18.0': - optional: true - - '@types/estree@1.0.5': {} - - esbuild@0.20.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 - - fsevents@2.3.3: - optional: true - - nanoid@3.3.7: {} - - picocolors@1.0.1: {} - - postcss@8.4.38: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - rollup@4.18.0: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 - fsevents: 2.3.3 - - source-map-js@1.2.0: {} - - vite@5.2.12: - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.18.0 - optionalDependencies: - fsevents: 2.3.3 diff --git a/examples/react/package.json b/examples/react/package.json index f2c47ec5..8792d950 100644 --- a/examples/react/package.json +++ b/examples/react/package.json @@ -4,8 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { - "compile-ui": "pnpm --prefix ../../ run build", - "dev": "pnpm run compile-ui && vite", + "dev": "vite", "build": "vite build", "preview": "vite preview", "build-only": "vite build" @@ -33,7 +32,7 @@ "vite": "^5.1.6" }, "dependencies": { - "@hotosm/ui": "link:../..", + "@hotosm/ui": "git+https://github.com/hotosm/ui.git#dev", "react": "^18.2.0", "react-dom": "^18.2.0" } diff --git a/examples/react/pnpm-lock.yaml b/examples/react/pnpm-lock.yaml deleted file mode 100644 index e255065a..00000000 --- a/examples/react/pnpm-lock.yaml +++ /dev/null @@ -1,1112 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@hotosm/ui': - specifier: link:../.. - version: link:../.. - react: - specifier: ^18.2.0 - version: 18.2.0 - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - devDependencies: - '@tsconfig/node20': - specifier: ^20.1.2 - version: 20.1.4 - '@tsconfig/vite-react': - specifier: ^3.0.2 - version: 3.0.2 - '@types/node': - specifier: ^20.11.28 - version: 20.12.2 - '@types/react': - specifier: ^18.2.73 - version: 18.2.73 - '@types/react-dom': - specifier: ^18.2.23 - version: 18.2.23 - '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.2.7(@types/node@20.12.2)) - typescript: - specifier: ~5.4.0 - version: 5.4.3 - vite: - specifier: ^5.1.6 - version: 5.2.7(@types/node@20.12.2) - -packages: - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.24.2': - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.24.1': - resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.24.3': - resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.24.1': - resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.23.6': - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.24.3': - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.23.3': - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.24.0': - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.1': - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.23.5': - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.24.1': - resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.2': - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.24.1': - resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-transform-react-jsx-self@7.24.1': - resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.24.1': - resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/template@7.24.0': - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.24.1': - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} - - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@rollup/rollup-android-arm-eabi@4.13.2': - resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.13.2': - resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.13.2': - resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.13.2': - resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.13.2': - resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.13.2': - resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.13.2': - resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.13.2': - resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} - cpu: [ppc64le] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.13.2': - resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.13.2': - resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.13.2': - resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.13.2': - resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.13.2': - resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.13.2': - resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.13.2': - resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} - cpu: [x64] - os: [win32] - - '@tsconfig/node20@20.1.4': - resolution: {integrity: sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==} - - '@tsconfig/vite-react@3.0.2': - resolution: {integrity: sha512-AFynAtE1Un3Rko20Ghe2mVC/QWD4rStJ2PnyIZU2kzC4UyWpf1YhAEY87GojH/XPZCY8Mdt27gsYyy+6l6HV+w==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.5': - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/node@20.12.2': - resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} - - '@types/prop-types@15.7.12': - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - '@types/react-dom@18.2.23': - resolution: {integrity: sha512-ZQ71wgGOTmDYpnav2knkjr3qXdAFu0vsk8Ci5w3pGAIdj7/kKAyn+VsQDhXsmzzzepAiI9leWMmubXz690AI/A==} - - '@types/react@18.2.73': - resolution: {integrity: sha512-XcGdod0Jjv84HOC7N5ziY3x+qL0AfmubvKOZ9hJjJ2yd5EE+KYjWhdOjt387e9HPheHkdggF9atTifMRtyAaRA==} - - '@vitejs/plugin-react@4.2.1': - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - caniuse-lite@1.0.30001603: - resolution: {integrity: sha512-iL2iSS0eDILMb9n5yKQoTBim9jMZ0Yrk8g0N9K7UzYyWnfIKzXBZD5ngpM37ZcL/cv0Mli8XtVMRYMQAfFpi5Q==} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - electron-to-chromium@1.4.723: - resolution: {integrity: sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw==} - - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - react-dom@18.2.0: - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 - - react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} - engines: {node: '>=0.10.0'} - - react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} - - rollup@4.13.2: - resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - vite@5.2.7: - resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - -snapshots: - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.24.2': - dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 - - '@babel/compat-data@7.24.1': {} - - '@babel/core@7.24.3': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) - '@babel/helpers': 7.24.1 - '@babel/parser': 7.24.1 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.24.1': - dependencies: - '@babel/types': 7.24.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-compilation-targets@7.23.6': - dependencies: - '@babel/compat-data': 7.24.1 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-environment-visitor@7.22.20': {} - - '@babel/helper-function-name@7.23.0': - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - - '@babel/helper-hoist-variables@7.22.5': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-module-imports@7.24.3': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - - '@babel/helper-plugin-utils@7.24.0': {} - - '@babel/helper-simple-access@7.22.5': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-split-export-declaration@7.22.6': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-string-parser@7.24.1': {} - - '@babel/helper-validator-identifier@7.22.20': {} - - '@babel/helper-validator-option@7.23.5': {} - - '@babel/helpers@7.24.1': - dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color - - '@babel/highlight@7.24.2': - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 - - '@babel/parser@7.24.1': - dependencies: - '@babel/types': 7.24.0 - - '@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/template@7.24.0': - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.1 - '@babel/types': 7.24.0 - - '@babel/traverse@7.24.1': - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.1 - '@babel/types': 7.24.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.24.0': - dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - '@esbuild/aix-ppc64@0.20.2': - optional: true - - '@esbuild/android-arm64@0.20.2': - optional: true - - '@esbuild/android-arm@0.20.2': - optional: true - - '@esbuild/android-x64@0.20.2': - optional: true - - '@esbuild/darwin-arm64@0.20.2': - optional: true - - '@esbuild/darwin-x64@0.20.2': - optional: true - - '@esbuild/freebsd-arm64@0.20.2': - optional: true - - '@esbuild/freebsd-x64@0.20.2': - optional: true - - '@esbuild/linux-arm64@0.20.2': - optional: true - - '@esbuild/linux-arm@0.20.2': - optional: true - - '@esbuild/linux-ia32@0.20.2': - optional: true - - '@esbuild/linux-loong64@0.20.2': - optional: true - - '@esbuild/linux-mips64el@0.20.2': - optional: true - - '@esbuild/linux-ppc64@0.20.2': - optional: true - - '@esbuild/linux-riscv64@0.20.2': - optional: true - - '@esbuild/linux-s390x@0.20.2': - optional: true - - '@esbuild/linux-x64@0.20.2': - optional: true - - '@esbuild/netbsd-x64@0.20.2': - optional: true - - '@esbuild/openbsd-x64@0.20.2': - optional: true - - '@esbuild/sunos-x64@0.20.2': - optional: true - - '@esbuild/win32-arm64@0.20.2': - optional: true - - '@esbuild/win32-ia32@0.20.2': - optional: true - - '@esbuild/win32-x64@0.20.2': - optional: true - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@rollup/rollup-android-arm-eabi@4.13.2': - optional: true - - '@rollup/rollup-android-arm64@4.13.2': - optional: true - - '@rollup/rollup-darwin-arm64@4.13.2': - optional: true - - '@rollup/rollup-darwin-x64@4.13.2': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.13.2': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.13.2': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-x64-musl@4.13.2': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.13.2': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.13.2': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.13.2': - optional: true - - '@tsconfig/node20@20.1.4': {} - - '@tsconfig/vite-react@3.0.2': {} - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.24.1 - '@babel/types': 7.24.0 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 - - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.24.0 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.24.1 - '@babel/types': 7.24.0 - - '@types/babel__traverse@7.20.5': - dependencies: - '@babel/types': 7.24.0 - - '@types/estree@1.0.5': {} - - '@types/node@20.12.2': - dependencies: - undici-types: 5.26.5 - - '@types/prop-types@15.7.12': {} - - '@types/react-dom@18.2.23': - dependencies: - '@types/react': 18.2.73 - - '@types/react@18.2.73': - dependencies: - '@types/prop-types': 15.7.12 - csstype: 3.1.3 - - '@vitejs/plugin-react@4.2.1(vite@5.2.7(@types/node@20.12.2))': - dependencies: - '@babel/core': 7.24.3 - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.3) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.2.7(@types/node@20.12.2) - transitivePeerDependencies: - - supports-color - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - browserslist@4.23.0: - dependencies: - caniuse-lite: 1.0.30001603 - electron-to-chromium: 1.4.723 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) - - caniuse-lite@1.0.30001603: {} - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-name@1.1.3: {} - - convert-source-map@2.0.0: {} - - csstype@3.1.3: {} - - debug@4.3.4: - dependencies: - ms: 2.1.2 - - electron-to-chromium@1.4.723: {} - - esbuild@0.20.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 - - escalade@3.1.2: {} - - escape-string-regexp@1.0.5: {} - - fsevents@2.3.3: - optional: true - - gensync@1.0.0-beta.2: {} - - globals@11.12.0: {} - - has-flag@3.0.0: {} - - js-tokens@4.0.0: {} - - jsesc@2.5.2: {} - - json5@2.2.3: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - ms@2.1.2: {} - - nanoid@3.3.7: {} - - node-releases@2.0.14: {} - - picocolors@1.0.0: {} - - postcss@8.4.38: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 - - react-dom@18.2.0(react@18.2.0): - dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 - - react-refresh@0.14.0: {} - - react@18.2.0: - dependencies: - loose-envify: 1.4.0 - - rollup@4.13.2: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.2 - '@rollup/rollup-android-arm64': 4.13.2 - '@rollup/rollup-darwin-arm64': 4.13.2 - '@rollup/rollup-darwin-x64': 4.13.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 - '@rollup/rollup-linux-arm64-gnu': 4.13.2 - '@rollup/rollup-linux-arm64-musl': 4.13.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 - '@rollup/rollup-linux-riscv64-gnu': 4.13.2 - '@rollup/rollup-linux-s390x-gnu': 4.13.2 - '@rollup/rollup-linux-x64-gnu': 4.13.2 - '@rollup/rollup-linux-x64-musl': 4.13.2 - '@rollup/rollup-win32-arm64-msvc': 4.13.2 - '@rollup/rollup-win32-ia32-msvc': 4.13.2 - '@rollup/rollup-win32-x64-msvc': 4.13.2 - fsevents: 2.3.3 - - scheduler@0.23.0: - dependencies: - loose-envify: 1.4.0 - - semver@6.3.1: {} - - source-map-js@1.2.0: {} - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - to-fast-properties@2.0.0: {} - - typescript@5.4.3: {} - - undici-types@5.26.5: {} - - update-browserslist-db@1.0.13(browserslist@4.23.0): - dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.0 - - vite@5.2.7(@types/node@20.12.2): - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.13.2 - optionalDependencies: - '@types/node': 20.12.2 - fsevents: 2.3.3 - - yallist@3.1.1: {} diff --git a/examples/react/src/App.tsx b/examples/react/src/App.tsx index c5428042..481b6624 100644 --- a/examples/react/src/App.tsx +++ b/examples/react/src/App.tsx @@ -1,57 +1,50 @@ import { useState } from 'react'; -import hotLogo from '@hotosm/ui/theme/logo.png'; -import Toolbar from '@hotosm/ui/react/Toolbar'; +import { Toolbar, Button, Header, Logo} from '@hotosm/ui/components/react'; const App = () => { - const [undoCount, setUndoCount] = useState(0); - const [redoCount, setRedoCount] = useState(0); - const [boldCount, setBoldCount] = useState(0); - const [italicCount, setItalicCount] = useState(0); - const [underlineCount, setUnderlineCount] = useState(0); - const [leftAlignCount, setLeftAlignCount] = useState(0); - const [centerAlignCount, setCenterAlignCount] = useState(0); - const [rightAlignCount, setRightAlignCount] = useState(0); - - const incrementCounter = (type) => { - switch (type) { - case 'undo': - setUndoCount((prevCount) => prevCount + 1); - break; - case 'redo': - setRedoCount((prevCount) => prevCount + 1); - break; - case 'bold': - setBoldCount((prevCount) => prevCount + 1); - break; - case 'italic': - setItalicCount((prevCount) => prevCount + 1); - break; - case 'underline': - setUnderlineCount((prevCount) => prevCount + 1); - break; - case 'leftAlign': - setLeftAlignCount((prevCount) => prevCount + 1); - break; - case 'centerAlign': - setCenterAlignCount((prevCount) => prevCount + 1); - break; - case 'rightAlign': - setRightAlignCount((prevCount) => prevCount + 1); - break; - default: - break; - } + const [count, setCount] = useState({}); + + const incrementCounter = (type: string) => { + setCount({ + ...count, + [type]: count[type] ? count[type] + 1 : 1 + }) }; + const twoTab = [ + { + label: 'GO TO HEADER PAGE', + clickEvent: async () => {} + }, + { + label: 'GO TO TRACKING PAGE', + clickEvent: async () => {} + } + ]; + + localStorage.removeItem(`1234-matomo-agree`); + return (
- -

HOTOSM UI React Example

+

Logo

+ + + +

Header

+ +
+ +

Button

+ +   +   + + +

Toolbar

{ onBoldClick={() => { incrementCounter('bold'); }} onItalicClick={() => { incrementCounter('italic'); }} onUnderlineClick={() => { incrementCounter('underline'); }} - onLeftalignClick={() => { incrementCounter('leftAlign'); }} - onCenteralignClick={() => { incrementCounter('centerAlign'); }} - onRightalignClick={() => { incrementCounter('rightAlign'); }} + onLeftalignClick={() => { incrementCounter('justifyLeft'); }} + onCenteralignClick={() => { incrementCounter('justifyCenter'); }} + onRightalignClick={() => { incrementCounter('justifyRight'); }} /> -

Undo: {undoCount}

-

Redo: {redoCount}

-

Bold: {boldCount}

-

Italic: {italicCount}

-

Underline: {underlineCount}

-

Justify Left: {leftAlignCount}

-

Justify Center: {centerAlignCount}

-

Justify Right: {rightAlignCount}

+
    + { + Object.keys(count).map(value => +
  • {value} : {count[value]}
  • + ) + } +
+
); }; diff --git a/examples/react/src/app.css b/examples/react/src/app.css index 20fb2a57..80087192 100644 --- a/examples/react/src/app.css +++ b/examples/react/src/app.css @@ -25,7 +25,6 @@ body { margin: 0; display: flex; justify-content: center; /* Center horizontally */ - align-items: center; /* Center vertically */ min-width: 320px; min-height: 100vh; } @@ -45,6 +44,11 @@ h1 { text-align: center; } +#root { + width: 90vw; + padding: 10px;; +} + @media (prefers-color-scheme: light) { :root { color: #213547; @@ -57,3 +61,8 @@ h1 { background-color: #f9f9f9; } } + +.hot-flex { + border: 2px solid red; +} + diff --git a/examples/react/vite.config.ts b/examples/react/vite.config.ts index c18efe98..00d45d0e 100644 --- a/examples/react/vite.config.ts +++ b/examples/react/vite.config.ts @@ -1,5 +1,3 @@ -import { fileURLToPath, URL } from 'node:url' - import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' @@ -8,10 +6,10 @@ export default defineConfig({ plugins: [ react({}), ], - resolve: { - alias: { - '@': fileURLToPath(new URL('./src', import.meta.url)) - } + css: { + modules: { + scopeBehaviour: 'local', + }, }, server: { host: "0.0.0.0", diff --git a/examples/react19/package.json b/examples/react19/package.json index 0b48313b..8f4d5257 100644 --- a/examples/react19/package.json +++ b/examples/react19/package.json @@ -4,8 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { - "compile-ui": "pnpm --prefix ../../ run build", - "dev": "pnpm run compile-ui && vite", + "dev": "vite", "build": "vite build", "preview": "vite preview", "build-only": "vite build" @@ -31,7 +30,7 @@ "vite": "^5.1.6" }, "dependencies": { - "@hotosm/ui": "link:../..", + "@hotosm/ui": "git+https://github.com/hotosm/ui.git#dev", "react": "^19.0.0-rc-bf3a29d097-20240603", "react-dom": "^19.0.0-rc-bf3a29d097-20240603" } diff --git a/examples/react19/pnpm-lock.yaml b/examples/react19/pnpm-lock.yaml deleted file mode 100644 index ea3f638a..00000000 --- a/examples/react19/pnpm-lock.yaml +++ /dev/null @@ -1,1068 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@hotosm/ui': - specifier: link:../.. - version: link:../.. - react: - specifier: ^19.0.0-rc-bf3a29d097-20240603 - version: 19.0.0-rc-f994737d14-20240522 - react-dom: - specifier: ^19.0.0-rc-bf3a29d097-20240603 - version: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522) - devDependencies: - '@tsconfig/node20': - specifier: ^20.1.2 - version: 20.1.4 - '@tsconfig/vite-react': - specifier: ^3.0.2 - version: 3.0.2 - '@types/node': - specifier: ^20.11.28 - version: 20.12.2 - '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.2.7(@types/node@20.12.2)) - typescript: - specifier: ~5.4.0 - version: 5.4.3 - vite: - specifier: ^5.1.6 - version: 5.2.7(@types/node@20.12.2) - -packages: - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.24.2': - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.24.1': - resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.24.3': - resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.24.1': - resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.23.6': - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.24.3': - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.23.3': - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.24.0': - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.1': - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.23.5': - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.24.1': - resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.2': - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.24.1': - resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-transform-react-jsx-self@7.24.1': - resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.24.1': - resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/template@7.24.0': - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.24.1': - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} - - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@rollup/rollup-android-arm-eabi@4.13.2': - resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.13.2': - resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.13.2': - resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.13.2': - resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.13.2': - resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.13.2': - resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.13.2': - resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.13.2': - resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} - cpu: [ppc64le] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.13.2': - resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.13.2': - resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.13.2': - resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.13.2': - resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.13.2': - resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.13.2': - resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.13.2': - resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} - cpu: [x64] - os: [win32] - - '@tsconfig/node20@20.1.4': - resolution: {integrity: sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==} - - '@tsconfig/vite-react@3.0.2': - resolution: {integrity: sha512-AFynAtE1Un3Rko20Ghe2mVC/QWD4rStJ2PnyIZU2kzC4UyWpf1YhAEY87GojH/XPZCY8Mdt27gsYyy+6l6HV+w==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.5': - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/node@20.12.2': - resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} - - '@vitejs/plugin-react@4.2.1': - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - caniuse-lite@1.0.30001603: - resolution: {integrity: sha512-iL2iSS0eDILMb9n5yKQoTBim9jMZ0Yrk8g0N9K7UzYyWnfIKzXBZD5ngpM37ZcL/cv0Mli8XtVMRYMQAfFpi5Q==} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - electron-to-chromium@1.4.723: - resolution: {integrity: sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw==} - - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - react-dom@19.0.0-rc-f994737d14-20240522: - resolution: {integrity: sha512-J4CsfTSptPKkhaPbaR6n/KohQiHZTrRZ8GL4H8rbAqN/Qpy69g2MIoLBr5/PUX21ye6JxC1ZRWJFna7Xdg1pdA==} - peerDependencies: - react: 19.0.0-rc-f994737d14-20240522 - - react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} - engines: {node: '>=0.10.0'} - - react@19.0.0-rc-f994737d14-20240522: - resolution: {integrity: sha512-SeU2v5Xy6FotVhKz0pMS2gvYP7HlkF0qgTskj3JzA1vlxcb3dQjxlm9t0ZlJqcgoyI3VFAw7bomuDMdgy1nBuw==} - engines: {node: '>=0.10.0'} - - rollup@4.13.2: - resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - scheduler@0.25.0-rc-f994737d14-20240522: - resolution: {integrity: sha512-qS+xGFF7AljP2APO2iJe8zESNsK20k25MACz+WGOXPybUsRdi1ssvaoF93im2nSX2q/XT3wKkjdz6RQfbmaxdw==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - vite@5.2.7: - resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - -snapshots: - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.24.2': - dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 - - '@babel/compat-data@7.24.1': {} - - '@babel/core@7.24.3': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) - '@babel/helpers': 7.24.1 - '@babel/parser': 7.24.1 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.24.1': - dependencies: - '@babel/types': 7.24.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-compilation-targets@7.23.6': - dependencies: - '@babel/compat-data': 7.24.1 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-environment-visitor@7.22.20': {} - - '@babel/helper-function-name@7.23.0': - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - - '@babel/helper-hoist-variables@7.22.5': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-module-imports@7.24.3': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - - '@babel/helper-plugin-utils@7.24.0': {} - - '@babel/helper-simple-access@7.22.5': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-split-export-declaration@7.22.6': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-string-parser@7.24.1': {} - - '@babel/helper-validator-identifier@7.22.20': {} - - '@babel/helper-validator-option@7.23.5': {} - - '@babel/helpers@7.24.1': - dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color - - '@babel/highlight@7.24.2': - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 - - '@babel/parser@7.24.1': - dependencies: - '@babel/types': 7.24.0 - - '@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/template@7.24.0': - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.1 - '@babel/types': 7.24.0 - - '@babel/traverse@7.24.1': - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.1 - '@babel/types': 7.24.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.24.0': - dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - '@esbuild/aix-ppc64@0.20.2': - optional: true - - '@esbuild/android-arm64@0.20.2': - optional: true - - '@esbuild/android-arm@0.20.2': - optional: true - - '@esbuild/android-x64@0.20.2': - optional: true - - '@esbuild/darwin-arm64@0.20.2': - optional: true - - '@esbuild/darwin-x64@0.20.2': - optional: true - - '@esbuild/freebsd-arm64@0.20.2': - optional: true - - '@esbuild/freebsd-x64@0.20.2': - optional: true - - '@esbuild/linux-arm64@0.20.2': - optional: true - - '@esbuild/linux-arm@0.20.2': - optional: true - - '@esbuild/linux-ia32@0.20.2': - optional: true - - '@esbuild/linux-loong64@0.20.2': - optional: true - - '@esbuild/linux-mips64el@0.20.2': - optional: true - - '@esbuild/linux-ppc64@0.20.2': - optional: true - - '@esbuild/linux-riscv64@0.20.2': - optional: true - - '@esbuild/linux-s390x@0.20.2': - optional: true - - '@esbuild/linux-x64@0.20.2': - optional: true - - '@esbuild/netbsd-x64@0.20.2': - optional: true - - '@esbuild/openbsd-x64@0.20.2': - optional: true - - '@esbuild/sunos-x64@0.20.2': - optional: true - - '@esbuild/win32-arm64@0.20.2': - optional: true - - '@esbuild/win32-ia32@0.20.2': - optional: true - - '@esbuild/win32-x64@0.20.2': - optional: true - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@rollup/rollup-android-arm-eabi@4.13.2': - optional: true - - '@rollup/rollup-android-arm64@4.13.2': - optional: true - - '@rollup/rollup-darwin-arm64@4.13.2': - optional: true - - '@rollup/rollup-darwin-x64@4.13.2': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.13.2': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.13.2': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-x64-musl@4.13.2': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.13.2': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.13.2': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.13.2': - optional: true - - '@tsconfig/node20@20.1.4': {} - - '@tsconfig/vite-react@3.0.2': {} - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.24.1 - '@babel/types': 7.24.0 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 - - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.24.0 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.24.1 - '@babel/types': 7.24.0 - - '@types/babel__traverse@7.20.5': - dependencies: - '@babel/types': 7.24.0 - - '@types/estree@1.0.5': {} - - '@types/node@20.12.2': - dependencies: - undici-types: 5.26.5 - - '@vitejs/plugin-react@4.2.1(vite@5.2.7(@types/node@20.12.2))': - dependencies: - '@babel/core': 7.24.3 - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.3) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.2.7(@types/node@20.12.2) - transitivePeerDependencies: - - supports-color - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - browserslist@4.23.0: - dependencies: - caniuse-lite: 1.0.30001603 - electron-to-chromium: 1.4.723 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) - - caniuse-lite@1.0.30001603: {} - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-name@1.1.3: {} - - convert-source-map@2.0.0: {} - - debug@4.3.4: - dependencies: - ms: 2.1.2 - - electron-to-chromium@1.4.723: {} - - esbuild@0.20.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 - - escalade@3.1.2: {} - - escape-string-regexp@1.0.5: {} - - fsevents@2.3.3: - optional: true - - gensync@1.0.0-beta.2: {} - - globals@11.12.0: {} - - has-flag@3.0.0: {} - - js-tokens@4.0.0: {} - - jsesc@2.5.2: {} - - json5@2.2.3: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - ms@2.1.2: {} - - nanoid@3.3.7: {} - - node-releases@2.0.14: {} - - picocolors@1.0.0: {} - - postcss@8.4.38: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 - - react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522): - dependencies: - react: 19.0.0-rc-f994737d14-20240522 - scheduler: 0.25.0-rc-f994737d14-20240522 - - react-refresh@0.14.0: {} - - react@19.0.0-rc-f994737d14-20240522: {} - - rollup@4.13.2: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.2 - '@rollup/rollup-android-arm64': 4.13.2 - '@rollup/rollup-darwin-arm64': 4.13.2 - '@rollup/rollup-darwin-x64': 4.13.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 - '@rollup/rollup-linux-arm64-gnu': 4.13.2 - '@rollup/rollup-linux-arm64-musl': 4.13.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 - '@rollup/rollup-linux-riscv64-gnu': 4.13.2 - '@rollup/rollup-linux-s390x-gnu': 4.13.2 - '@rollup/rollup-linux-x64-gnu': 4.13.2 - '@rollup/rollup-linux-x64-musl': 4.13.2 - '@rollup/rollup-win32-arm64-msvc': 4.13.2 - '@rollup/rollup-win32-ia32-msvc': 4.13.2 - '@rollup/rollup-win32-x64-msvc': 4.13.2 - fsevents: 2.3.3 - - scheduler@0.25.0-rc-f994737d14-20240522: {} - - semver@6.3.1: {} - - source-map-js@1.2.0: {} - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - to-fast-properties@2.0.0: {} - - typescript@5.4.3: {} - - undici-types@5.26.5: {} - - update-browserslist-db@1.0.13(browserslist@4.23.0): - dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.0 - - vite@5.2.7(@types/node@20.12.2): - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.13.2 - optionalDependencies: - '@types/node': 20.12.2 - fsevents: 2.3.3 - - yallist@3.1.1: {} diff --git a/examples/react19/src/App.tsx b/examples/react19/src/App.tsx index 272e16e5..481b6624 100644 --- a/examples/react19/src/App.tsx +++ b/examples/react19/src/App.tsx @@ -1,80 +1,71 @@ import { useState } from 'react'; -import hotLogo from '@hotosm/ui/theme/logo.png'; - -import '@hotosm/ui/dist/style.css'; -import '@hotosm/ui/dist/components.js'; +import { Toolbar, Button, Header, Logo} from '@hotosm/ui/components/react'; const App = () => { - const [undoCount, setUndoCount] = useState(0); - const [redoCount, setRedoCount] = useState(0); - const [boldCount, setBoldCount] = useState(0); - const [italicCount, setItalicCount] = useState(0); - const [underlineCount, setUnderlineCount] = useState(0); - const [leftAlignCount, setLeftAlignCount] = useState(0); - const [centerAlignCount, setCenterAlignCount] = useState(0); - const [rightAlignCount, setRightAlignCount] = useState(0); - - const incrementCounter = (type) => { - switch (type) { - case 'undo': - setUndoCount((prevCount) => prevCount + 1); - break; - case 'redo': - setRedoCount((prevCount) => prevCount + 1); - break; - case 'bold': - setBoldCount((prevCount) => prevCount + 1); - break; - case 'italic': - setItalicCount((prevCount) => prevCount + 1); - break; - case 'underline': - setUnderlineCount((prevCount) => prevCount + 1); - break; - case 'leftAlign': - setLeftAlignCount((prevCount) => prevCount + 1); - break; - case 'centerAlign': - setCenterAlignCount((prevCount) => prevCount + 1); - break; - case 'rightAlign': - setRightAlignCount((prevCount) => prevCount + 1); - break; - default: - break; - } + const [count, setCount] = useState({}); + + const incrementCounter = (type: string) => { + setCount({ + ...count, + [type]: count[type] ? count[type] + 1 : 1 + }) }; + const twoTab = [ + { + label: 'GO TO HEADER PAGE', + clickEvent: async () => {} + }, + { + label: 'GO TO TRACKING PAGE', + clickEvent: async () => {} + } + ]; + + localStorage.removeItem(`1234-matomo-agree`); + return (
-
- - HOT Logo - -
-

HOTOSM UI React Example

+

Logo

+ + - Header + +
+ +

Button

+ +   +   + + +

Toolbar

+ + { incrementCounter('undo'); }} - onredo={() => { incrementCounter('redo'); }} - onbold={() => { incrementCounter('bold'); }} - onitalic={() => { incrementCounter('italic'); }} - onunderline={() => { incrementCounter('underline'); }} - onleftalign={() => { incrementCounter('leftAlign'); }} - oncenteralign={() => { incrementCounter('centerAlign'); }} - onrightalign={() => { incrementCounter('rightAlign'); }} - > - -

Undo: {undoCount}

-

Redo: {redoCount}

-

Bold: {boldCount}

-

Italic: {italicCount}

-

Underline: {underlineCount}

-

Justify Left: {leftAlignCount}

-

Justify Center: {centerAlignCount}

-

Justify Right: {rightAlignCount}

+ onUndoClick={() => { incrementCounter('undo'); }} + onRedoClick={() => { incrementCounter('redo'); }} + onBoldClick={() => { incrementCounter('bold'); }} + onItalicClick={() => { incrementCounter('italic'); }} + onUnderlineClick={() => { incrementCounter('underline'); }} + onLeftalignClick={() => { incrementCounter('justifyLeft'); }} + onCenteralignClick={() => { incrementCounter('justifyCenter'); }} + onRightalignClick={() => { incrementCounter('justifyRight'); }} + /> + +
    + { + Object.keys(count).map(value => +
  • {value} : {count[value]}
  • + ) + } +
+
); }; diff --git a/examples/svelte/package.json b/examples/svelte/package.json index f6755988..48cdde02 100644 --- a/examples/svelte/package.json +++ b/examples/svelte/package.json @@ -19,6 +19,6 @@ "vite": "^5.1.4" }, "dependencies": { - "@hotosm/ui": "link:../.." + "@hotosm/ui": "git+https://github.com/hotosm/ui.git#dev" } } diff --git a/examples/svelte/pnpm-lock.yaml b/examples/svelte/pnpm-lock.yaml deleted file mode 100644 index 37387b2d..00000000 --- a/examples/svelte/pnpm-lock.yaml +++ /dev/null @@ -1,1204 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@hotosm/ui': - specifier: link:../.. - version: link:../.. - devDependencies: - '@sveltejs/vite-plugin-svelte': - specifier: ^3.0.2 - version: 3.0.2(svelte@4.2.12)(vite@5.1.4) - '@tsconfig/svelte': - specifier: ^5.0.2 - version: 5.0.2 - svelte: - specifier: ^4.2.11 - version: 4.2.12 - svelte-check: - specifier: ^3.6.4 - version: 3.6.5(postcss@8.4.35)(svelte@4.2.12) - tslib: - specifier: ^2.6.2 - version: 2.6.2 - typescript: - specifier: ^5.2.2 - version: 5.3.3 - vite: - specifier: ^5.1.4 - version: 5.1.4 - -packages: - - '@ampproject/remapping@2.2.1': - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@jridgewell/gen-mapping@0.3.4': - resolution: {integrity: sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.1.2': - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.23': - resolution: {integrity: sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@rollup/rollup-android-arm-eabi@4.12.0': - resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.12.0': - resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.12.0': - resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.12.0': - resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.12.0': - resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.12.0': - resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.12.0': - resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.12.0': - resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.12.0': - resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.12.0': - resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.12.0': - resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.12.0': - resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.12.0': - resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} - cpu: [x64] - os: [win32] - - '@sveltejs/vite-plugin-svelte-inspector@2.0.0': - resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} - engines: {node: ^18.0.0 || >=20} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.0 - - '@sveltejs/vite-plugin-svelte@3.0.2': - resolution: {integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==} - engines: {node: ^18.0.0 || >=20} - peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.0 - - '@tsconfig/svelte@5.0.2': - resolution: {integrity: sha512-BRbo1fOtyVbhfLyuCWw6wAWp+U8UQle+ZXu84MYYWzYSEB28dyfnRBIE99eoG+qdAC0po6L2ScIEivcT07UaMA==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/pug@2.0.10': - resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} - - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - - axobject-query@4.0.0: - resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - code-red@1.0.4: - resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - - es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - - magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} - engines: {node: '>=12'} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} - engines: {node: ^10 || ^12 || >=14} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - hasBin: true - - rollup@4.12.0: - resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - - sander@0.5.1: - resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} - - sorcery@0.11.0: - resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} - hasBin: true - - source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - svelte-check@3.6.5: - resolution: {integrity: sha512-5aLgoQEdadvp8ypvKQ2avhnQ+V9YPQQaWrTFlXFw5g/v8xIQBvo+X/WqxTyD+V/ItDqXg3+abUA53rdDHgUjCA==} - hasBin: true - peerDependencies: - svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - - svelte-hmr@0.15.3: - resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} - engines: {node: ^12.20 || ^14.13.1 || >= 16} - peerDependencies: - svelte: ^3.19.0 || ^4.0.0 - - svelte-preprocess@5.1.3: - resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} - engines: {node: '>= 16.0.0', pnpm: ^8.0.0} - peerDependencies: - '@babel/core': ^7.10.2 - coffeescript: ^2.5.1 - less: ^3.11.3 || ^4.0.0 - postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - pug: ^3.0.0 - sass: ^1.26.8 - stylus: ^0.55.0 - sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 - svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' - peerDependenciesMeta: - '@babel/core': - optional: true - coffeescript: - optional: true - less: - optional: true - postcss: - optional: true - postcss-load-config: - optional: true - pug: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - typescript: - optional: true - - svelte@4.2.12: - resolution: {integrity: sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==} - engines: {node: '>=16'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - - vite@5.1.4: - resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vitefu@0.2.5: - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - vite: - optional: true - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - -snapshots: - - '@ampproject/remapping@2.2.1': - dependencies: - '@jridgewell/gen-mapping': 0.3.4 - '@jridgewell/trace-mapping': 0.3.23 - - '@esbuild/aix-ppc64@0.19.12': - optional: true - - '@esbuild/android-arm64@0.19.12': - optional: true - - '@esbuild/android-arm@0.19.12': - optional: true - - '@esbuild/android-x64@0.19.12': - optional: true - - '@esbuild/darwin-arm64@0.19.12': - optional: true - - '@esbuild/darwin-x64@0.19.12': - optional: true - - '@esbuild/freebsd-arm64@0.19.12': - optional: true - - '@esbuild/freebsd-x64@0.19.12': - optional: true - - '@esbuild/linux-arm64@0.19.12': - optional: true - - '@esbuild/linux-arm@0.19.12': - optional: true - - '@esbuild/linux-ia32@0.19.12': - optional: true - - '@esbuild/linux-loong64@0.19.12': - optional: true - - '@esbuild/linux-mips64el@0.19.12': - optional: true - - '@esbuild/linux-ppc64@0.19.12': - optional: true - - '@esbuild/linux-riscv64@0.19.12': - optional: true - - '@esbuild/linux-s390x@0.19.12': - optional: true - - '@esbuild/linux-x64@0.19.12': - optional: true - - '@esbuild/netbsd-x64@0.19.12': - optional: true - - '@esbuild/openbsd-x64@0.19.12': - optional: true - - '@esbuild/sunos-x64@0.19.12': - optional: true - - '@esbuild/win32-arm64@0.19.12': - optional: true - - '@esbuild/win32-ia32@0.19.12': - optional: true - - '@esbuild/win32-x64@0.19.12': - optional: true - - '@jridgewell/gen-mapping@0.3.4': - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.23 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.1.2': {} - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/trace-mapping@0.3.23': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@rollup/rollup-android-arm-eabi@4.12.0': - optional: true - - '@rollup/rollup-android-arm64@4.12.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.12.0': - optional: true - - '@rollup/rollup-darwin-x64@4.12.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.12.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.12.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.12.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.12.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.12.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.12.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.12.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.12.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.12.0': - optional: true - - '@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4))(svelte@4.2.12)(vite@5.1.4)': - dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.1.4) - debug: 4.3.4 - svelte: 4.2.12 - vite: 5.1.4 - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4)': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4))(svelte@4.2.12)(vite@5.1.4) - debug: 4.3.4 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.7 - svelte: 4.2.12 - svelte-hmr: 0.15.3(svelte@4.2.12) - vite: 5.1.4 - vitefu: 0.2.5(vite@5.1.4) - transitivePeerDependencies: - - supports-color - - '@tsconfig/svelte@5.0.2': {} - - '@types/estree@1.0.5': {} - - '@types/pug@2.0.10': {} - - acorn@8.11.3: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 - - axobject-query@4.0.0: - dependencies: - dequal: 2.0.3 - - balanced-match@1.0.2: {} - - binary-extensions@2.2.0: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - braces@3.0.2: - dependencies: - fill-range: 7.0.1 - - buffer-crc32@0.2.13: {} - - callsites@3.1.0: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - code-red@1.0.4: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.5 - acorn: 8.11.3 - estree-walker: 3.0.3 - periscopic: 3.1.0 - - concat-map@0.0.1: {} - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.0.2 - - debug@4.3.4: - dependencies: - ms: 2.1.2 - - deepmerge@4.3.1: {} - - dequal@2.0.3: {} - - detect-indent@6.1.0: {} - - es6-promise@3.3.1: {} - - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.5 - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - fill-range@7.0.1: - dependencies: - to-regex-range: 5.0.1 - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - graceful-fs@4.2.11: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.2.0 - - is-extglob@2.1.1: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - is-reference@3.0.2: - dependencies: - '@types/estree': 1.0.5 - - kleur@4.1.5: {} - - locate-character@3.0.0: {} - - magic-string@0.30.7: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - - mdn-data@2.0.30: {} - - merge2@1.4.1: {} - - micromatch@4.0.5: - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - - min-indent@1.0.1: {} - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimist@1.2.8: {} - - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - - mri@1.2.0: {} - - ms@2.1.2: {} - - nanoid@3.3.7: {} - - normalize-path@3.0.0: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - path-is-absolute@1.0.1: {} - - periscopic@3.1.0: - dependencies: - '@types/estree': 1.0.5 - estree-walker: 3.0.3 - is-reference: 3.0.2 - - picocolors@1.0.0: {} - - picomatch@2.3.1: {} - - postcss@8.4.35: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - - queue-microtask@1.2.3: {} - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - resolve-from@4.0.0: {} - - reusify@1.0.4: {} - - rimraf@2.7.1: - dependencies: - glob: 7.2.3 - - rollup@4.12.0: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.0 - '@rollup/rollup-android-arm64': 4.12.0 - '@rollup/rollup-darwin-arm64': 4.12.0 - '@rollup/rollup-darwin-x64': 4.12.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 - '@rollup/rollup-linux-arm64-gnu': 4.12.0 - '@rollup/rollup-linux-arm64-musl': 4.12.0 - '@rollup/rollup-linux-riscv64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-musl': 4.12.0 - '@rollup/rollup-win32-arm64-msvc': 4.12.0 - '@rollup/rollup-win32-ia32-msvc': 4.12.0 - '@rollup/rollup-win32-x64-msvc': 4.12.0 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - sade@1.8.1: - dependencies: - mri: 1.2.0 - - sander@0.5.1: - dependencies: - es6-promise: 3.3.1 - graceful-fs: 4.2.11 - mkdirp: 0.5.6 - rimraf: 2.7.1 - - sorcery@0.11.0: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - buffer-crc32: 0.2.13 - minimist: 1.2.8 - sander: 0.5.1 - - source-map-js@1.0.2: {} - - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - - svelte-check@3.6.5(postcss@8.4.35)(svelte@4.2.12): - dependencies: - '@jridgewell/trace-mapping': 0.3.23 - chokidar: 3.6.0 - fast-glob: 3.3.2 - import-fresh: 3.3.0 - picocolors: 1.0.0 - sade: 1.8.1 - svelte: 4.2.12 - svelte-preprocess: 5.1.3(postcss@8.4.35)(svelte@4.2.12)(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss - - svelte-hmr@0.15.3(svelte@4.2.12): - dependencies: - svelte: 4.2.12 - - svelte-preprocess@5.1.3(postcss@8.4.35)(svelte@4.2.12)(typescript@5.3.3): - dependencies: - '@types/pug': 2.0.10 - detect-indent: 6.1.0 - magic-string: 0.30.7 - sorcery: 0.11.0 - strip-indent: 3.0.0 - svelte: 4.2.12 - optionalDependencies: - postcss: 8.4.35 - typescript: 5.3.3 - - svelte@4.2.12: - dependencies: - '@ampproject/remapping': 2.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.23 - '@types/estree': 1.0.5 - acorn: 8.11.3 - aria-query: 5.3.0 - axobject-query: 4.0.0 - code-red: 1.0.4 - css-tree: 2.3.1 - estree-walker: 3.0.3 - is-reference: 3.0.2 - locate-character: 3.0.0 - magic-string: 0.30.7 - periscopic: 3.1.0 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - tslib@2.6.2: {} - - typescript@5.3.3: {} - - vite@5.1.4: - dependencies: - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.12.0 - optionalDependencies: - fsevents: 2.3.3 - - vitefu@0.2.5(vite@5.1.4): - optionalDependencies: - vite: 5.1.4 - - wrappy@1.0.2: {} diff --git a/examples/svelte/src/App.svelte b/examples/svelte/src/App.svelte index 8d436f3a..65102c0d 100644 --- a/examples/svelte/src/App.svelte +++ b/examples/svelte/src/App.svelte @@ -1,91 +1,49 @@
- - - +

HOTOSM UI Svelte Example

{ incrementCounter('undo'); }} + on:redo={() => { incrementCounter('redo'); }} + on:bold={() => { incrementCounter('bold'); }} + on:italic={() => { incrementCounter('italic'); }} + on:underline={() => { incrementCounter('underline'); }} + on:leftalign={() => { incrementCounter('leftalign'); }} + on:centeralign={() => { incrementCounter('centeralign'); }} + on:rightalign={() => { incrementCounter('rightalign'); }} > -

Undo: {undoCount}

-

Redo: {redoCount}

-

Bold: {boldCount}

-

Italic: {italicCount}

-

Underline: {underlineCount}

-

Justify Left: {leftAlignCount}

-

Justify Center: {centerAlignCount}

-

Justify Right: {rightAlignCount}

+
    + {#each Object.entries(count) as [key, value]} +
  • {key} : {value}
  • + {/each} +
+ + Click me!
diff --git a/examples/vue/package.json b/examples/vue/package.json index 6f3ec436..ad68d837 100644 --- a/examples/vue/package.json +++ b/examples/vue/package.json @@ -11,7 +11,7 @@ "type-check": "vue-tsc --build --force" }, "dependencies": { - "@hotosm/ui": "link:../..", + "@hotosm/ui": "git+https://github.com/hotosm/ui.git#dev", "vue": "^3.4.21" }, "devDependencies": { diff --git a/examples/vue/pnpm-lock.yaml b/examples/vue/pnpm-lock.yaml deleted file mode 100644 index e13a7726..00000000 --- a/examples/vue/pnpm-lock.yaml +++ /dev/null @@ -1,965 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@hotosm/ui': - specifier: link:../.. - version: link:../.. - vue: - specifier: ^3.4.21 - version: 3.4.21(typescript@5.4.3) - devDependencies: - '@tsconfig/node20': - specifier: ^20.1.2 - version: 20.1.4 - '@types/node': - specifier: ^20.11.28 - version: 20.12.2 - '@vitejs/plugin-vue': - specifier: ^5.0.4 - version: 5.0.4(vite@5.2.7(@types/node@20.12.2))(vue@3.4.21(typescript@5.4.3)) - '@vue/tsconfig': - specifier: ^0.5.1 - version: 0.5.1 - npm-run-all2: - specifier: ^6.1.2 - version: 6.1.2 - typescript: - specifier: ~5.4.0 - version: 5.4.3 - vite: - specifier: ^5.1.6 - version: 5.2.7(@types/node@20.12.2) - vue-tsc: - specifier: ^2.0.6 - version: 2.0.7(typescript@5.4.3) - -packages: - - '@babel/helper-string-parser@7.24.1': - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.24.1': - resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} - - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@rollup/rollup-android-arm-eabi@4.13.2': - resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.13.2': - resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.13.2': - resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.13.2': - resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.13.2': - resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.13.2': - resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.13.2': - resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.13.2': - resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} - cpu: [ppc64le] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.13.2': - resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.13.2': - resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.13.2': - resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.13.2': - resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.13.2': - resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.13.2': - resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.13.2': - resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} - cpu: [x64] - os: [win32] - - '@tsconfig/node20@20.1.4': - resolution: {integrity: sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/node@20.12.2': - resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} - - '@vitejs/plugin-vue@5.0.4': - resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - vite: ^5.0.0 - vue: ^3.2.25 - - '@volar/language-core@2.1.6': - resolution: {integrity: sha512-pAlMCGX/HatBSiDFMdMyqUshkbwWbLxpN/RL7HCQDOo2gYBE+uS+nanosLc1qR6pTQ/U8q00xt8bdrrAFPSC0A==} - - '@volar/source-map@2.1.6': - resolution: {integrity: sha512-TeyH8pHHonRCHYI91J7fWUoxi0zWV8whZTVRlsWHSYfjm58Blalkf9LrZ+pj6OiverPTmrHRkBsG17ScQyWECw==} - - '@volar/typescript@2.1.6': - resolution: {integrity: sha512-JgPGhORHqXuyC3r6skPmPHIZj4LoMmGlYErFTuPNBq9Nhc9VTv7ctHY7A3jMN3ngKEfRrfnUcwXHztvdSQqNfw==} - - '@vue/compiler-core@3.4.21': - resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} - - '@vue/compiler-dom@3.4.21': - resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} - - '@vue/compiler-sfc@3.4.21': - resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} - - '@vue/compiler-ssr@3.4.21': - resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} - - '@vue/language-core@2.0.7': - resolution: {integrity: sha512-Vh1yZX3XmYjn9yYLkjU8DN6L0ceBtEcapqiyclHne8guG84IaTzqtvizZB1Yfxm3h6m7EIvjerLO5fvOZO6IIQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@vue/reactivity@3.4.21': - resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} - - '@vue/runtime-core@3.4.21': - resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} - - '@vue/runtime-dom@3.4.21': - resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} - - '@vue/server-renderer@3.4.21': - resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} - peerDependencies: - vue: 3.4.21 - - '@vue/shared@3.4.21': - resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} - - '@vue/tsconfig@0.5.1': - resolution: {integrity: sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - computeds@0.0.1: - resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - json-parse-even-better-errors@3.0.1: - resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - magic-string@0.30.8: - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} - engines: {node: '>=12'} - - memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} - - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} - - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-run-all2@6.1.2: - resolution: {integrity: sha512-WwwnS8Ft+RpXve6T2EIEVpFLSqN+ORHRvgNk3H9N62SZXjmzKoRhMFg3I17TK3oMaAEr+XFbRirWS2Fn3BCPSg==} - engines: {node: ^14.18.0 || >=16.0.0, npm: '>= 8'} - hasBin: true - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - - postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - rollup@4.13.2: - resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - - source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - vite@5.2.7: - resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vue-template-compiler@2.7.16: - resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} - - vue-tsc@2.0.7: - resolution: {integrity: sha512-LYa0nInkfcDBB7y8jQ9FQ4riJTRNTdh98zK/hzt4gEpBZQmf30dPhP+odzCa+cedGz6B/guvJEd0BavZaRptjg==} - hasBin: true - peerDependencies: - typescript: '*' - - vue@3.4.21: - resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - -snapshots: - - '@babel/helper-string-parser@7.24.1': {} - - '@babel/helper-validator-identifier@7.22.20': {} - - '@babel/parser@7.24.1': - dependencies: - '@babel/types': 7.24.0 - - '@babel/types@7.24.0': - dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - '@esbuild/aix-ppc64@0.20.2': - optional: true - - '@esbuild/android-arm64@0.20.2': - optional: true - - '@esbuild/android-arm@0.20.2': - optional: true - - '@esbuild/android-x64@0.20.2': - optional: true - - '@esbuild/darwin-arm64@0.20.2': - optional: true - - '@esbuild/darwin-x64@0.20.2': - optional: true - - '@esbuild/freebsd-arm64@0.20.2': - optional: true - - '@esbuild/freebsd-x64@0.20.2': - optional: true - - '@esbuild/linux-arm64@0.20.2': - optional: true - - '@esbuild/linux-arm@0.20.2': - optional: true - - '@esbuild/linux-ia32@0.20.2': - optional: true - - '@esbuild/linux-loong64@0.20.2': - optional: true - - '@esbuild/linux-mips64el@0.20.2': - optional: true - - '@esbuild/linux-ppc64@0.20.2': - optional: true - - '@esbuild/linux-riscv64@0.20.2': - optional: true - - '@esbuild/linux-s390x@0.20.2': - optional: true - - '@esbuild/linux-x64@0.20.2': - optional: true - - '@esbuild/netbsd-x64@0.20.2': - optional: true - - '@esbuild/openbsd-x64@0.20.2': - optional: true - - '@esbuild/sunos-x64@0.20.2': - optional: true - - '@esbuild/win32-arm64@0.20.2': - optional: true - - '@esbuild/win32-ia32@0.20.2': - optional: true - - '@esbuild/win32-x64@0.20.2': - optional: true - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@rollup/rollup-android-arm-eabi@4.13.2': - optional: true - - '@rollup/rollup-android-arm64@4.13.2': - optional: true - - '@rollup/rollup-darwin-arm64@4.13.2': - optional: true - - '@rollup/rollup-darwin-x64@4.13.2': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.13.2': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.13.2': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.13.2': - optional: true - - '@rollup/rollup-linux-x64-musl@4.13.2': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.13.2': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.13.2': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.13.2': - optional: true - - '@tsconfig/node20@20.1.4': {} - - '@types/estree@1.0.5': {} - - '@types/node@20.12.2': - dependencies: - undici-types: 5.26.5 - - '@vitejs/plugin-vue@5.0.4(vite@5.2.7(@types/node@20.12.2))(vue@3.4.21(typescript@5.4.3))': - dependencies: - vite: 5.2.7(@types/node@20.12.2) - vue: 3.4.21(typescript@5.4.3) - - '@volar/language-core@2.1.6': - dependencies: - '@volar/source-map': 2.1.6 - - '@volar/source-map@2.1.6': - dependencies: - muggle-string: 0.4.1 - - '@volar/typescript@2.1.6': - dependencies: - '@volar/language-core': 2.1.6 - path-browserify: 1.0.1 - - '@vue/compiler-core@3.4.21': - dependencies: - '@babel/parser': 7.24.1 - '@vue/shared': 3.4.21 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.0.2 - - '@vue/compiler-dom@3.4.21': - dependencies: - '@vue/compiler-core': 3.4.21 - '@vue/shared': 3.4.21 - - '@vue/compiler-sfc@3.4.21': - dependencies: - '@babel/parser': 7.24.1 - '@vue/compiler-core': 3.4.21 - '@vue/compiler-dom': 3.4.21 - '@vue/compiler-ssr': 3.4.21 - '@vue/shared': 3.4.21 - estree-walker: 2.0.2 - magic-string: 0.30.8 - postcss: 8.4.35 - source-map-js: 1.0.2 - - '@vue/compiler-ssr@3.4.21': - dependencies: - '@vue/compiler-dom': 3.4.21 - '@vue/shared': 3.4.21 - - '@vue/language-core@2.0.7(typescript@5.4.3)': - dependencies: - '@volar/language-core': 2.1.6 - '@vue/compiler-dom': 3.4.21 - '@vue/shared': 3.4.21 - computeds: 0.0.1 - minimatch: 9.0.4 - path-browserify: 1.0.1 - vue-template-compiler: 2.7.16 - optionalDependencies: - typescript: 5.4.3 - - '@vue/reactivity@3.4.21': - dependencies: - '@vue/shared': 3.4.21 - - '@vue/runtime-core@3.4.21': - dependencies: - '@vue/reactivity': 3.4.21 - '@vue/shared': 3.4.21 - - '@vue/runtime-dom@3.4.21': - dependencies: - '@vue/runtime-core': 3.4.21 - '@vue/shared': 3.4.21 - csstype: 3.1.3 - - '@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.4.3))': - dependencies: - '@vue/compiler-ssr': 3.4.21 - '@vue/shared': 3.4.21 - vue: 3.4.21(typescript@5.4.3) - - '@vue/shared@3.4.21': {} - - '@vue/tsconfig@0.5.1': {} - - ansi-styles@6.2.1: {} - - balanced-match@1.0.2: {} - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - computeds@0.0.1: {} - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - csstype@3.1.3: {} - - de-indent@1.0.2: {} - - entities@4.5.0: {} - - esbuild@0.20.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 - - estree-walker@2.0.2: {} - - fsevents@2.3.3: - optional: true - - he@1.2.0: {} - - isexe@2.0.0: {} - - json-parse-even-better-errors@3.0.1: {} - - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - magic-string@0.30.8: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - - memorystream@0.3.1: {} - - minimatch@9.0.4: - dependencies: - brace-expansion: 2.0.1 - - muggle-string@0.4.1: {} - - nanoid@3.3.7: {} - - npm-normalize-package-bin@3.0.1: {} - - npm-run-all2@6.1.2: - dependencies: - ansi-styles: 6.2.1 - cross-spawn: 7.0.3 - memorystream: 0.3.1 - minimatch: 9.0.4 - pidtree: 0.6.0 - read-package-json-fast: 3.0.2 - shell-quote: 1.8.1 - - path-browserify@1.0.1: {} - - path-key@3.1.1: {} - - picocolors@1.0.0: {} - - pidtree@0.6.0: {} - - postcss@8.4.35: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - - postcss@8.4.38: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 - - read-package-json-fast@3.0.2: - dependencies: - json-parse-even-better-errors: 3.0.1 - npm-normalize-package-bin: 3.0.1 - - rollup@4.13.2: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.2 - '@rollup/rollup-android-arm64': 4.13.2 - '@rollup/rollup-darwin-arm64': 4.13.2 - '@rollup/rollup-darwin-x64': 4.13.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 - '@rollup/rollup-linux-arm64-gnu': 4.13.2 - '@rollup/rollup-linux-arm64-musl': 4.13.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 - '@rollup/rollup-linux-riscv64-gnu': 4.13.2 - '@rollup/rollup-linux-s390x-gnu': 4.13.2 - '@rollup/rollup-linux-x64-gnu': 4.13.2 - '@rollup/rollup-linux-x64-musl': 4.13.2 - '@rollup/rollup-win32-arm64-msvc': 4.13.2 - '@rollup/rollup-win32-ia32-msvc': 4.13.2 - '@rollup/rollup-win32-x64-msvc': 4.13.2 - fsevents: 2.3.3 - - semver@7.6.0: - dependencies: - lru-cache: 6.0.0 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - shell-quote@1.8.1: {} - - source-map-js@1.0.2: {} - - source-map-js@1.2.0: {} - - to-fast-properties@2.0.0: {} - - typescript@5.4.3: {} - - undici-types@5.26.5: {} - - vite@5.2.7(@types/node@20.12.2): - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.13.2 - optionalDependencies: - '@types/node': 20.12.2 - fsevents: 2.3.3 - - vue-template-compiler@2.7.16: - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - - vue-tsc@2.0.7(typescript@5.4.3): - dependencies: - '@volar/typescript': 2.1.6 - '@vue/language-core': 2.0.7(typescript@5.4.3) - semver: 7.6.0 - typescript: 5.4.3 - - vue@3.4.21(typescript@5.4.3): - dependencies: - '@vue/compiler-dom': 3.4.21 - '@vue/compiler-sfc': 3.4.21 - '@vue/runtime-dom': 3.4.21 - '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.4.3)) - '@vue/shared': 3.4.21 - optionalDependencies: - typescript: 5.4.3 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - yallist@4.0.0: {} diff --git a/examples/vue/src/App.vue b/examples/vue/src/App.vue index d6c33eb4..a197fd97 100644 --- a/examples/vue/src/App.vue +++ b/examples/vue/src/App.vue @@ -1,9 +1,7 @@ +``` + +Or: + +```js + import { Button } from '@hotosm/ui/components'; +``` + +And use the components: + +```html +Click me! +``` + +Or: -// Use the components in your templates - +```html + ``` +### Components Bundle + +- This is the compiled JavaScript bundle generated from the TypeScript code. +- The components require no additional dependencies and are minified. + #### Via CDN ```html -// Import the styles (or create your own) +// Import the styles - +``` +## Using Extra Shoelace Components -The `jsdelivr` CDN only includes package releases, with `@latest` pointing to the -most recent tagged release. +The HOT UI library contains many composite components, such as headers, sidebars, +tracking banners, etc, and does not re-invent the wheel for low-level components. -There is also an S3-based CDN, where `latest` tracks the `main` branch of the repo: - `https://s3.amazonaws.com/hotosm-ui/latest/dist/components.js` +Shoelace is an UI library that is exported directly from `@hotosm/ui`. -### ES Modules +To access the low-level components, such as buttons, dropdowns, modals, etc, +simply import the component of the same name from the [Shoelace docs] +(): -- Using the TypeScript ES Modules allows for cherry-picking components, so -'tree-shaking' can remove the remaining ones you don't use. -- If you are developing an application that uses `@hotosm/ui` components, -including a bundler such as rollup/vite/webpack, this is probably the best approach. -- However, you must first add Shoelace as a `peerDependency` in your `package.json`: +```js +import '@hotosm/ui/components/button/button'; +``` - ```json - "peerDependencies": { - "@shoelace-style/shoelace": "^2.15.1" - } - ``` +And then: - > Ideally the version of Shoelace installed should match the version used in - > hotosm/ui. +```html +Can't Click Me +``` -Example: +Or ```js -import '@hotosm/ui/components/header/header'; - -// Then in your template - +import { Button } from '@hotosm/ui/components'; ``` -### React - -Versions of React below v19 require a specific 'wrapper' component to use the -web components. - -Use these instead of the standard `@hotosm/ui/components/xxx`: +And then: -```bash -pnpm install @hotosm/ui +```html + ``` -```js -import { Button } from '@hotosm/ui/react/Header' - -const HomePage = ({}) => { - return ( -
-
-
-
-
- ); -}; - -export default HomePage; -``` +### Development -> Note that while web components must always have a closing tag, this is not -> required for the React wrappers. +HOT UI is developed in TypeScript, using Lit and @lit/react. -## Using Extra Shoelace Components +Primarily we want to have: -The UI library contains many composite components, such as headers, sidebars, -tracking banners, etc, and does not re-invent the wheel for low-level components. +- Low level components exported from the Shoelace web component + library, simply re-exported with our default styling / CSS overrides. +- A few composite components (header, sidebar, etc): + - Consistent styling across most of our tools where it counts. + - Reduction in duplicated logic, such as user management, OAuth login, etc. +- Improved developer experience, reduced development time for new tools, while + maintaining consistency in look and feel of applications. -Shoelace is an excellent UI library that is exported directly from `@hotosm/ui`. +### Examples -To access the low-level components, such as buttons, dropdowns, modals, etc, -simply import the component of the same name from the [Shoelace docs] -(): +You can found examples for HTML and also all common frameworks (React, Svelte, Vue) under `/examples`. -```js -import '@hotosm/ui/components/button/button'; +### How to contribute -// Then in your template -Can't Click Me -``` +- Clone the project `git clone git@github.com:hotosm/ui.git` +- Install dependencies `pnpm install` +- Run the storybook `pnpm run dev` +- Write code! -If you are using a bundler, you must bundle the (icon) assets yourself, -described in the Shoelace docs. +There's also a React storybook that you can use for testing: -### Example of bundling assets +- Run the React storybook `pnpm run dev-react` -- To include the Shoelace assets in your final bundle (dist), you could add - the following to your `package.json`: +For **styling**, we have 2 important files under `/theme`: -```json - "scripts": { - "clean-icons": "rm -rf public/assets/icons", - "get-icons": "cp -r node_modules/@shoelace-style/shoelace/dist/assets/icons public/", - "setup-dist": "pnpm run clean-icons && pnpm run get-icons", - } -``` +- `hot-sl.css` has a Shoelace theme, re-defining some variables +- `hot.css` has custom styles for eveything else, specially composited components + +### License -- Now the Shoelace assets will be bundled with your dist, under `/shoelace`. -- Following the example, also add `public/assets/icons` to your `.gitignore` file. +HOT UI is free and open source software! you may use any HOT UI project under the terms of the GNU Affero General Public License (AGPL) Version 3. \ No newline at end of file diff --git a/package.json b/package.json index 2bb7969b..fc272f0d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@hotosm/ui", - "version": "0.2.04", - "description": "Shared UI components with theming for use across HOTOSM tools.", + "version": "0.2.05", + "description": "Shared UI components with HOT theming.", "type": "module", "engines": { "node": ">=14.17" diff --git a/theme/logo/hot-logo-png.png b/theme/logo/hot-logo-png.png new file mode 100644 index 0000000000000000000000000000000000000000..b0696048d5fbbda4857824a4d5f1a79108cecb59 GIT binary patch literal 72168 zcmY&=1yEhf()HnRaEAof0KwgZLvVMOK(OHM?he5nLU0WZ!6mr6ySqF5hur(V_x`F~ zXt8IeyJvOJ>NSMQ%Zeev~03-?V&x!y5G$Q~2;R6c|{s|;J4HWnj$V5;^5CHfU zjqvmZ{Jj7`;q5>tJRGkFums_NoqZCY2 zGbxu{(|>2~BCc;HDgn!KBiXw->kvX$1ewRb>D@&tp8 zt%aT`#n>gpCtk5eRVBk`6yw~Pap6Xmj|ARB(FxFHZn_&CjmNTc(jSiH>;{Vpv3$ z|1|?KgczDBT=3}UvmX$W1&F$oxo6tHe~Xh5iWKyg;2V)8T+{mQ*xb2*7&39#U2_C;}v&kM)B)fOzqU%a_5iNbm#0$3-1`x$0Al^Lxcvma>RXZOw zX*fc(Vw97J1#Bso?*K?_*HWiOecu`MNWK8wuHIb*Bup6~nE5h>N0>+?fgZKnV|VbHhgxD;r!_!1w!y- z=-?QAzQlc_swi>CgNSInTl|WVPze3DQ8-iD?>_VBK8_sC|K^;BJ&=9#`@hecIuK*{ zTe&D!#axYFBbqtkrQu2hdb0uMu{BABf|OkpeEKxX~^q` z;?KZ==luI^&eace(V|)HPsf**`IyrrZviic-afYDxfO(j(tm%6fNus!`1n8jz=qn_ znO6QOcVc0I5MfIm1h&Z<0RqSg+VGdt-|u652H#%X1y67Ntw{&=TnVpOG~w^was~Y? zwK6mR9f{D*RdGkS}=7%U^A2e*W4wdz&}?Gd)SYxu`D4+(>3!V63n8u;T#|Lq(4 z=AQ^I9IP8G%hHc3;N46N(TmzH9+9Rgl!Jkv%lIA)?Eg0l8(QC#@x5!I$p}uDLq8*< zRr}I)e4jeNPYA1-{(Stcy7*xaHi{yYh@p!YddxAg-r26OMX7hYE!ibcmlhq`hYG7 zM-@%2Mc>BOsLn3wV92Swu($Zu2SbcOLSZ#6XgiC}h zRClUfIGi+4AkJCik!wjTUHTLL=5I|A+&M?eFlv3TRHgJV&zVWZJ7hwyqcqDStO zsId5c*UBSb&I}kyUciBm9R-+e$Bv4Ti5d+NRjW}}B_zcNg;mBi!>IjtgU9*AbN|^m zr%?Su_U8?C)6GD&|KE;*hv0P8%0A>$mlM*$iIfdDTOgB}t@T-5<+JPzNcaYCRxl^T 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�j=IYy7GL5zR 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 literal 0 HcmV?d00001 From 3eda688534d07d250c52daf81097ec4a9eb0d997 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 18:20:17 +0000 Subject: [PATCH 07/11] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 22d5f89e..ead3a612 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # HOT UI -## Shared UI components with HOT theming. +## Shared UI components with HOT theming HOT themed UI components to reduce code duplication and make live easier for developers, available as [Web Components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) and React components. @@ -23,7 +23,6 @@ The main goal of this project is not to re-invent the wheel, or add an extra bur --- - ## Install There are two options for install: @@ -88,6 +87,7 @@ Or: Click me! +```js + import { Logo } from '@hotosm/ui/components'; ``` -Or: - -```html - +```jsx + ``` ### Components Bundle @@ -71,22 +62,20 @@ Or: - This is the compiled JavaScript bundle generated from the TypeScript code. - The components require no additional dependencies and are minified. -#### Via CDN +Appropriate for HTML / Markdown / HTMX. ```html -// Import the styles -// Import the components -Can't Click Me ``` -Or +### React ```js import { Button } from '@hotosm/ui/components'; ``` -And then: - ```html ``` From c25733d287c55e22c1a1b1f519705ecf2e1f4141 Mon Sep 17 00:00:00 2001 From: Emilio Mariscal Date: Tue, 10 Sep 2024 15:27:53 -0300 Subject: [PATCH 09/11] Improve Readme --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2cf005dd..344f8a40 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,10 @@ import { Button } from '@hotosm/ui/components'; ``` +### Examples + +You can found examples for HTML and also all common frameworks (React, Svelte, Vue) under `/examples`. + ### Development HOT UI is developed in TypeScript, using Lit and @lit/react. @@ -120,10 +124,6 @@ Primarily we want to have: - Improved developer experience, reduced development time for new tools, while maintaining consistency in look and feel of applications. -### Examples - -You can found examples for HTML and also all common frameworks (React, Svelte, Vue) under `/examples`. - ### How to contribute - Clone the project `git clone git@github.com:hotosm/ui.git` From e89cc1d4b707560e23d8b37275a4517c2d909bd7 Mon Sep 17 00:00:00 2001 From: Emilio Mariscal Date: Tue, 10 Sep 2024 15:29:07 -0300 Subject: [PATCH 10/11] Improve Readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 344f8a40..d8305a8c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Shared UI components with HOT theming -HOT themed UI components to reduce code duplication and make live easier for developers, available as [Web Components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) and React components. +HOT themed UI components to reduce code duplication and make live easier for developers, available as [Web Components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) and witn first-class React support The main goal of this project is not to re-invent the wheel, or add an extra burden of development and maintenance. @@ -23,7 +23,7 @@ The main goal of this project is not to re-invent the wheel, or add an extra bur --- -## Install and use +## Quick start There are two options: NPM and Components Bundle. From 6ee70308ec912fb6ee1242d541da8fcf01dc4a49 Mon Sep 17 00:00:00 2001 From: Emilio Mariscal Date: Tue, 10 Sep 2024 15:30:33 -0300 Subject: [PATCH 11/11] Update license on package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fc272f0d..80768de6 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "url": "https://github.com/spwoodcock" } ], - "license": "GPL-3.0-only", + "license": "AGPL-3.0-only", "devDependencies": { "@lit/react": "^1.0.4", "@storybook/addon-essentials": "^8.2.9",