@bigbinary/neeto-atoms 1.0.10 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Accordion-BzfsJePA.js → Accordion-Ch9S_qd3.js} +3 -3
- package/dist/Accordion-Ch9S_qd3.js.map +1 -0
- package/dist/{ColorPicker-D-7QGnf9.js → ColorPicker-DtOvy0Gy.js} +3 -2
- package/dist/ColorPicker-DtOvy0Gy.js.map +1 -0
- package/dist/Input-C1gcv9o2.js.map +1 -1
- package/dist/MultiEmailInput-SCTYovtX.js.map +1 -1
- package/dist/RadioGroup-BNeYQAoT.js.map +1 -1
- package/dist/{Select-BGODpJGc.js → Select-TlFBcxcY.js} +7 -3
- package/dist/Select-TlFBcxcY.js.map +1 -0
- package/dist/Textarea-C0z50h0N.js.map +1 -1
- package/dist/TimePickerPanel-CiF0RExY.js.map +1 -1
- package/dist/TranslationProvider-Ba9rn47H.js.map +1 -1
- package/dist/{Tree-Dkr11OPy.js → Tree-C7r10UY5.js} +2 -2
- package/dist/{Tree-Dkr11OPy.js.map → Tree-C7r10UY5.js.map} +1 -1
- package/dist/{TreeSelect-Cmc90YWJ.js → TreeSelect-DRGcYz-6.js} +2 -2
- package/dist/{TreeSelect-Cmc90YWJ.js.map → TreeSelect-DRGcYz-6.js.map} +1 -1
- package/dist/{Typography-D5TjXEfu.js → Typography-CMJ8OveZ.js} +3 -9
- package/dist/Typography-CMJ8OveZ.js.map +1 -0
- package/dist/cjs/{Accordion-BX5I9ypV.js → Accordion-BoTckTBI.js} +3 -3
- package/dist/cjs/Accordion-BoTckTBI.js.map +1 -0
- package/dist/cjs/{ColorPicker-DEELmqH8.js → ColorPicker-Uxgn8U0h.js} +3 -2
- package/dist/cjs/ColorPicker-Uxgn8U0h.js.map +1 -0
- package/dist/cjs/Input-pkugjUb0.js.map +1 -1
- package/dist/cjs/MultiEmailInput-l0_YVjbp.js.map +1 -1
- package/dist/cjs/RadioGroup-1RAoe38m.js.map +1 -1
- package/dist/cjs/{Select-DOPZHlqc.js → Select-Br1AT_wm.js} +7 -3
- package/dist/cjs/Select-Br1AT_wm.js.map +1 -0
- package/dist/cjs/Textarea-BfdlAJ59.js.map +1 -1
- package/dist/cjs/TimePickerPanel-DGNr97cj.js.map +1 -1
- package/dist/cjs/TranslationProvider-DBZHXmzX.js.map +1 -1
- package/dist/cjs/{Tree-qpOcsGL9.js → Tree-BPd0DuLh.js} +2 -2
- package/dist/cjs/{Tree-qpOcsGL9.js.map → Tree-BPd0DuLh.js.map} +1 -1
- package/dist/cjs/{TreeSelect-DiIEdiAU.js → TreeSelect-C9nQJKNo.js} +2 -2
- package/dist/cjs/{TreeSelect-DiIEdiAU.js.map → TreeSelect-C9nQJKNo.js.map} +1 -1
- package/dist/cjs/{Typography-C3rGpmAY.js → Typography-PojQmdAY.js} +3 -28
- package/dist/cjs/Typography-PojQmdAY.js.map +1 -0
- package/dist/cjs/components/Accordion.js +1 -1
- package/dist/cjs/components/ColorPicker.js +1 -1
- package/dist/cjs/components/DropdownMenu.js.map +1 -1
- package/dist/cjs/components/Select.js +1 -1
- package/dist/cjs/components/Tree.js +6 -34
- package/dist/cjs/components/Tree.js.map +1 -1
- package/dist/cjs/components/TreeSelect.js +2 -2
- package/dist/cjs/components/Typography.js +1 -1
- package/dist/cjs/components/index.js +180 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/formik/ActionBlock.js +48 -0
- package/dist/cjs/formik/ActionBlock.js.map +1 -0
- package/dist/cjs/formik/BlockNavigation.js +111 -0
- package/dist/cjs/formik/BlockNavigation.js.map +1 -0
- package/dist/cjs/formik/Select.js +2 -2
- package/dist/cjs/formik/Select.js.map +1 -1
- package/dist/cjs/formik/TreeSelect.js +2 -2
- package/dist/cjs/formik/index.js +12 -3
- package/dist/cjs/formik/index.js.map +1 -1
- package/dist/cjs/index.js +10 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/search-CfYUGi4v.js +37 -0
- package/dist/cjs/search-CfYUGi4v.js.map +1 -0
- package/dist/components/Accordion/Accordion.d.ts +3 -1
- package/dist/components/Accordion.js +1 -1
- package/dist/components/ColorPicker/ColorPicker.d.ts +1 -2
- package/dist/components/ColorPicker/Palette.d.ts +1 -1
- package/dist/components/ColorPicker/types.d.ts +6 -1
- package/dist/components/ColorPicker.js +1 -1
- package/dist/components/DropdownMenu/MenuItemButton.d.ts +1 -2
- package/dist/components/DropdownMenu/index.d.ts +1 -0
- package/dist/components/DropdownMenu.js.map +1 -1
- package/dist/components/Input/Input.d.ts +3 -1
- package/dist/components/MultiEmailInput/MultiEmailInput.d.ts +1 -2
- package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/components/RadioGroup/index.d.ts +1 -1
- package/dist/components/Select/Select.d.ts +1 -2
- package/dist/components/Select.js +1 -1
- package/dist/components/Textarea/Textarea.d.ts +3 -1
- package/dist/components/TimePicker/TimePickerPanel.d.ts +1 -2
- package/dist/components/Tree.js +2 -34
- package/dist/components/Tree.js.map +1 -1
- package/dist/components/TreeSelect.js +2 -2
- package/dist/components/Typography/Typography.d.ts +11 -4
- package/dist/components/Typography.js +1 -1
- package/dist/components/index.d.ts +36 -0
- package/dist/components/index.js +128 -0
- package/dist/components/index.js.map +1 -0
- package/dist/formik/ActionBlock.d.ts +18 -0
- package/dist/formik/ActionBlock.js +46 -0
- package/dist/formik/ActionBlock.js.map +1 -0
- package/dist/formik/BlockNavigation/BlockNavigationAlert.d.ts +23 -0
- package/dist/formik/BlockNavigation/index.d.ts +11 -0
- package/dist/formik/BlockNavigation.js +109 -0
- package/dist/formik/BlockNavigation.js.map +1 -0
- package/dist/formik/RadioGroup.d.ts +11 -0
- package/dist/formik/Select.js +2 -2
- package/dist/formik/Select.js.map +1 -1
- package/dist/formik/TreeSelect.js +2 -2
- package/dist/formik/index.d.ts +4 -0
- package/dist/formik/index.js +10 -3
- package/dist/formik/index.js.map +1 -1
- package/dist/hooks/useNavPrompt.d.ts +15 -0
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/dist/search-BK7Ozh5_.js +33 -0
- package/dist/search-BK7Ozh5_.js.map +1 -0
- package/package.json +18 -7
- package/dist/Accordion-BzfsJePA.js.map +0 -1
- package/dist/ColorPicker-D-7QGnf9.js.map +0 -1
- package/dist/Select-BGODpJGc.js.map +0 -1
- package/dist/Typography-D5TjXEfu.js.map +0 -1
- package/dist/cjs/Accordion-BX5I9ypV.js.map +0 -1
- package/dist/cjs/ColorPicker-DEELmqH8.js.map +0 -1
- package/dist/cjs/Select-DOPZHlqc.js.map +0 -1
- package/dist/cjs/Typography-C3rGpmAY.js.map +0 -1
- package/dist/shadcn/components/typography.d.ts +0 -17
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils/dayjs/timezonePlugin.ts","../src/utils/dayjs/index.ts"],"sourcesContent":["import type { Dayjs, PluginFunc } from \"dayjs\";\n\ntype TypeToPos = Record<string, number>;\n\nconst typeToPos: TypeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5,\n};\n\nconst dateTimeFormatDefaults: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n};\n\nconst dtfCache = new Map<string, Intl.DateTimeFormat>();\nconst getDateTimeFormat = (\n timezone: string,\n options: { timeZoneName?: \"short\" | \"long\" } = {}\n): Intl.DateTimeFormat => {\n const timeZoneName = options.timeZoneName || \"short\";\n const key = `${timezone}|${timeZoneName}`;\n let dtf = dtfCache.get(key);\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(\"en-US\", {\n ...dateTimeFormatDefaults,\n hour12: false,\n timeZone: timezone,\n timeZoneName,\n });\n dtfCache.set(key, dtf);\n }\n\n return dtf;\n};\n\nconst localeStringifierCache = new Map<string, Intl.DateTimeFormat>();\nconst getLocaleStringifier = (timezone: string): Intl.DateTimeFormat => {\n let localeStringifier = localeStringifierCache.get(timezone);\n if (!localeStringifier) {\n localeStringifier = new Intl.DateTimeFormat(\"en-US\", {\n ...dateTimeFormatDefaults,\n timeZone: timezone,\n });\n localeStringifierCache.set(timezone, localeStringifier);\n }\n\n return localeStringifier;\n};\n\ninterface DayjsInternal extends Dayjs {\n $ms: number;\n $x: { $timezone?: string };\n $set(unit: string, value: number): DayjsInternal;\n}\n\ntype DayjsFactory = {\n (input?: string | number | Date | Dayjs, format?: string): DayjsInternal;\n utc(input?: string | number | Date, format?: string): DayjsInternal;\n tz: {\n (\n input: string | number | Date | Dayjs,\n arg1?: string,\n arg2?: string\n ): DayjsInternal;\n guess: () => string;\n setDefault: (timezone?: string) => void;\n };\n};\n\ntype DayjsClass = {\n prototype: DayjsInternal;\n};\n\nconst timezonePlugin: PluginFunc = (_o, c, d) => {\n let defaultTimezone: string | undefined;\n\n const dayjsFactory = d as unknown as DayjsFactory;\n const dayjsClass = c as unknown as DayjsClass;\n\n const makeFormatParts = (\n timestamp: number,\n timezone: string,\n options: { timeZoneName?: \"short\" | \"long\" } = {}\n ): Intl.DateTimeFormatPart[] => {\n const date = new Date(timestamp);\n const dtf = getDateTimeFormat(timezone, options);\n\n return dtf.formatToParts(date);\n };\n\n const tzOffset = (timestamp: number, timezone: string): number => {\n const formatResult = makeFormatParts(timestamp, timezone);\n const filled: number[] = [];\n for (let i = 0; i < formatResult.length; i += 1) {\n const { type, value } = formatResult[i];\n const pos = typeToPos[type];\n\n if (pos >= 0) {\n filled[pos] = parseInt(value, 10);\n }\n }\n const hour = filled[3];\n const fixedHour = hour === 24 ? 0 : hour;\n const utcString = `${filled[0]}-${filled[1]}-${filled[2]} ${fixedHour}:${filled[4]}:${filled[5]}:000`;\n const utcTs = dayjsFactory.utc(utcString).valueOf();\n let asTS = Number(timestamp);\n const over = asTS % 1000;\n asTS -= over;\n\n return (utcTs - asTS) / (60 * 1000);\n };\n\n const fixOffset = (\n localTS: number,\n o0: number,\n tz: string\n ): [number, number] => {\n let utcGuess = localTS - o0 * 60 * 1000;\n const o2 = tzOffset(utcGuess, tz);\n if (o0 === o2) {\n return [utcGuess, o0];\n }\n utcGuess -= (o2 - o0) * 60 * 1000;\n const o3 = tzOffset(utcGuess, tz);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n };\n\n const proto = dayjsClass.prototype;\n\n proto.tz = function (\n timezone: string = defaultTimezone!,\n keepLocalTime?: boolean\n ) {\n const oldOffset = this.utcOffset();\n const date = this.toDate();\n const target = getLocaleStringifier(timezone).format(date);\n const diff = Math.round(\n (date.getTime() - new Date(target).getTime()) / 1000 / 60\n );\n let ins = dayjsFactory(target)\n .$set(\"millisecond\", this.$ms)\n .utcOffset(\n -Math.round(date.getTimezoneOffset() / 15) * 15 - diff,\n true\n ) as DayjsInternal;\n if (keepLocalTime) {\n const newOffset = ins.utcOffset();\n ins = ins.add(oldOffset - newOffset, \"minute\") as DayjsInternal;\n }\n ins.$x.$timezone = timezone;\n\n return ins;\n };\n\n proto.offsetName = function (type?: \"short\" | \"long\") {\n const zone = this.$x.$timezone || dayjsFactory.tz.guess();\n const result = makeFormatParts(this.valueOf(), zone, {\n timeZoneName: type,\n }).find(\n (m: Intl.DateTimeFormatPart) => m.type.toLowerCase() === \"timezonename\"\n );\n\n return result && result.value;\n };\n\n const oldStartOf = proto.startOf;\n proto.startOf = function (units: string, startOf?: boolean) {\n if (!this.$x || !this.$x.$timezone) {\n return oldStartOf.call(this, units, startOf);\n }\n\n const withoutTz = dayjsFactory(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"));\n const startOfWithoutTz = oldStartOf.call(withoutTz, units, startOf);\n\n return (startOfWithoutTz as DayjsInternal).tz(this.$x.$timezone, true);\n };\n\n dayjsFactory.tz = function (\n input: string | number | Date | Dayjs,\n arg1?: string,\n arg2?: string\n ) {\n const parseFormat = arg2 && arg1;\n const timezone = arg2 || arg1 || defaultTimezone;\n const previousOffset = tzOffset(Number(dayjsFactory()), timezone!);\n if (typeof input !== \"string\") {\n return dayjsFactory(input as string | number | Date).tz(timezone!);\n }\n const localTs = dayjsFactory.utc(input, parseFormat).valueOf();\n const [targetTs, targetOffset] = fixOffset(\n localTs,\n previousOffset,\n timezone!\n );\n const ins = dayjsFactory(targetTs).utcOffset(targetOffset) as DayjsInternal;\n ins.$x.$timezone = timezone;\n\n return ins;\n };\n\n dayjsFactory.tz.guess = function () {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n };\n\n dayjsFactory.tz.setDefault = function (timezone?: string) {\n defaultTimezone = timezone;\n };\n};\n\nexport default timezonePlugin;\n","import pureDayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport localeData from \"dayjs/plugin/localeData\";\nimport utc from \"dayjs/plugin/utc\";\nimport weekday from \"dayjs/plugin/weekday\";\nimport weekOfYear from \"dayjs/plugin/weekOfYear\";\n\nimport timezonePlugin from \"./timezonePlugin\";\n\npureDayjs.extend(weekOfYear);\npureDayjs.extend(weekday);\npureDayjs.extend(localeData);\npureDayjs.extend(utc);\npureDayjs.extend(timezonePlugin);\n\ninterface DayjsInternal extends Dayjs {\n $x: { $timezone?: string };\n}\n\ninterface DayjsWithTz {\n (\n ...args: [string | number | Date | Dayjs | null | undefined, string?]\n ): Dayjs;\n utc(input?: string | number | Date, format?: string): Dayjs;\n tz: {\n (\n input?: string | number | Date | Dayjs,\n arg1?: string,\n arg2?: string\n ): DayjsInternal;\n guess: () => string;\n setDefault: (timezone?: string) => void;\n };\n}\n\nclass LRUCache<K, V> {\n private limit: number;\n private cache: Map<K, V>;\n\n constructor(limit: number) {\n this.limit = limit;\n this.cache = new Map();\n }\n\n get(key: K): V | undefined {\n const value = this.cache.get(key);\n this.cache.delete(key);\n if (value !== undefined) {\n this.cache.set(key, value);\n }\n\n return value;\n }\n\n set(key: K, value: V): void {\n if (this.cache.size >= this.limit) {\n const oldestKey = this.cache.keys().next().value;\n if (oldestKey !== undefined) {\n this.cache.delete(oldestKey);\n }\n }\n this.cache.set(key, value);\n }\n\n has(key: K): boolean {\n return this.cache.has(key);\n }\n}\n\nconst hasTimezone = (dateString: string): boolean => {\n const timezoneRegex = /Z|[+-]\\d{2}:\\d{2}$|[+-]\\d{4}$|GMT([+-]\\d{4})?$/;\n\n return timezoneRegex.test(dateString);\n};\n\nconst cache = new LRUCache<string, Dayjs>(1000);\nconst pureDayjsWithTz = pureDayjs as unknown as DayjsWithTz;\n\nconst dayjs = (\n ...args: [string | number | Date | Dayjs | null | undefined, string?]\n): Dayjs => {\n const cacheKey = JSON.stringify(args);\n\n if (cache.has(cacheKey) && args[0] !== undefined) return cache.get(cacheKey)!;\n\n const userTimezone = pureDayjsWithTz.tz()?.$x?.$timezone;\n const browserTimezone = pureDayjsWithTz.tz.guess();\n const timezone = userTimezone || browserTimezone;\n\n if (userTimezone === browserTimezone || userTimezone === undefined) {\n const result = pureDayjsWithTz(...args);\n\n if (args[0] !== undefined) cache.set(cacheKey, result);\n\n return result;\n }\n\n const mutableArgs: [\n string | number | Date | Dayjs | null | undefined,\n string?,\n ] = [...args];\n\n if (\n mutableArgs.length > 0 &&\n (typeof mutableArgs[0] === \"string\" || mutableArgs[0] === null)\n ) {\n const pureDayjsArgs: [\n string | number | Date | Dayjs | null | undefined,\n string?,\n ] = [mutableArgs[0], mutableArgs[1]];\n\n if (typeof mutableArgs[0] === \"string\" && hasTimezone(mutableArgs[0])) {\n mutableArgs[0] = pureDayjsWithTz(...pureDayjsArgs);\n } else {\n mutableArgs[0] = pureDayjsWithTz(...pureDayjsArgs).format(\n \"YYYY-MM-DD HH:mm:ss\"\n );\n mutableArgs[1] = \"YYYY-MM-DD HH:mm:ss\";\n }\n }\n\n if (mutableArgs[0]?.toString() === \"Invalid Date\") {\n const result = pureDayjsWithTz(...mutableArgs);\n\n if (mutableArgs[0] !== undefined) cache.set(cacheKey, result);\n\n return result;\n }\n\n const result =\n mutableArgs.length === 2\n ? pureDayjsWithTz.tz(\n mutableArgs[0] as string | number | Date | Dayjs,\n mutableArgs[1],\n timezone\n )\n : pureDayjsWithTz.tz(\n mutableArgs[0] as string | number | Date | Dayjs,\n timezone\n );\n\n if (mutableArgs[0] !== undefined) cache.set(cacheKey, result as Dayjs);\n\n return result as Dayjs;\n};\n\nObject.assign(dayjs, { ...pureDayjs });\n\nexport const getTimezoneAppliedDateTime = (\n inputDateTime: Dayjs | Dayjs[] | null\n): Dayjs | (Dayjs | null)[] | null => {\n const timezoneAppliedDateTime = (date: Dayjs | null): Dayjs | null =>\n date && typeof date.format === \"function\"\n ? dayjs(date.format(\"YYYY-MM-DD HH:mm:ss\"))\n : null;\n\n return Array.isArray(inputDateTime)\n ? inputDateTime.map(timezoneAppliedDateTime)\n : timezoneAppliedDateTime(inputDateTime);\n};\n\nexport { dayjs };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils/dayjs/timezonePlugin.ts","../src/utils/dayjs/index.ts"],"sourcesContent":["import type { Dayjs, PluginFunc } from \"dayjs\";\n\ntype TypeToPos = Record<string, number>;\n\nconst typeToPos: TypeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5,\n};\n\nconst dateTimeFormatDefaults: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n};\n\nconst dtfCache = new Map<string, Intl.DateTimeFormat>();\nconst getDateTimeFormat = (\n timezone: string,\n options: { timeZoneName?: \"short\" | \"long\" } = {}\n): Intl.DateTimeFormat => {\n const timeZoneName = options.timeZoneName || \"short\";\n const key = `${timezone}|${timeZoneName}`;\n let dtf = dtfCache.get(key);\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(\"en-US\", {\n ...dateTimeFormatDefaults,\n hour12: false,\n timeZone: timezone,\n timeZoneName,\n });\n dtfCache.set(key, dtf);\n }\n\n return dtf;\n};\n\nconst localeStringifierCache = new Map<string, Intl.DateTimeFormat>();\nconst getLocaleStringifier = (timezone: string): Intl.DateTimeFormat => {\n let localeStringifier = localeStringifierCache.get(timezone);\n if (!localeStringifier) {\n localeStringifier = new Intl.DateTimeFormat(\"en-US\", {\n ...dateTimeFormatDefaults,\n timeZone: timezone,\n });\n localeStringifierCache.set(timezone, localeStringifier);\n }\n\n return localeStringifier;\n};\n\ninterface DayjsInternal extends Dayjs {\n $ms: number;\n $x: { $timezone?: string };\n $set(unit: string, value: number): DayjsInternal;\n tz(timezone: string, keepLocalTime?: boolean): DayjsInternal;\n offsetName(type?: \"short\" | \"long\"): string | undefined;\n startOf(units: string, startOf?: boolean): DayjsInternal;\n}\n\ntype DayjsFactory = {\n (input?: string | number | Date | Dayjs, format?: string): DayjsInternal;\n utc(input?: string | number | Date, format?: string): DayjsInternal;\n tz: {\n (\n input: string | number | Date | Dayjs,\n arg1?: string,\n arg2?: string\n ): DayjsInternal;\n guess: () => string;\n setDefault: (timezone?: string) => void;\n };\n};\n\ntype DayjsClass = {\n prototype: DayjsInternal;\n};\n\nconst timezonePlugin: PluginFunc = (_o, c, d) => {\n let defaultTimezone: string | undefined;\n\n const dayjsFactory = d as unknown as DayjsFactory;\n const dayjsClass = c as unknown as DayjsClass;\n\n const makeFormatParts = (\n timestamp: number,\n timezone: string,\n options: { timeZoneName?: \"short\" | \"long\" } = {}\n ): Intl.DateTimeFormatPart[] => {\n const date = new Date(timestamp);\n const dtf = getDateTimeFormat(timezone, options);\n\n return dtf.formatToParts(date);\n };\n\n const tzOffset = (timestamp: number, timezone: string): number => {\n const formatResult = makeFormatParts(timestamp, timezone);\n const filled: number[] = [];\n for (let i = 0; i < formatResult.length; i += 1) {\n const { type, value } = formatResult[i];\n const pos = typeToPos[type];\n\n if (pos >= 0) {\n filled[pos] = parseInt(value, 10);\n }\n }\n const hour = filled[3];\n const fixedHour = hour === 24 ? 0 : hour;\n const utcString = `${filled[0]}-${filled[1]}-${filled[2]} ${fixedHour}:${filled[4]}:${filled[5]}:000`;\n const utcTs = dayjsFactory.utc(utcString).valueOf();\n let asTS = Number(timestamp);\n const over = asTS % 1000;\n asTS -= over;\n\n return (utcTs - asTS) / (60 * 1000);\n };\n\n const fixOffset = (\n localTS: number,\n o0: number,\n tz: string\n ): [number, number] => {\n let utcGuess = localTS - o0 * 60 * 1000;\n const o2 = tzOffset(utcGuess, tz);\n if (o0 === o2) {\n return [utcGuess, o0];\n }\n utcGuess -= (o2 - o0) * 60 * 1000;\n const o3 = tzOffset(utcGuess, tz);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n };\n\n const proto = dayjsClass.prototype;\n\n proto.tz = function (\n timezone: string = defaultTimezone!,\n keepLocalTime?: boolean\n ) {\n const oldOffset = this.utcOffset();\n const date = this.toDate();\n const target = getLocaleStringifier(timezone).format(date);\n const diff = Math.round(\n (date.getTime() - new Date(target).getTime()) / 1000 / 60\n );\n let ins = dayjsFactory(target)\n .$set(\"millisecond\", this.$ms)\n .utcOffset(\n -Math.round(date.getTimezoneOffset() / 15) * 15 - diff,\n true\n ) as DayjsInternal;\n if (keepLocalTime) {\n const newOffset = ins.utcOffset();\n ins = ins.add(oldOffset - newOffset, \"minute\") as DayjsInternal;\n }\n ins.$x.$timezone = timezone;\n\n return ins;\n };\n\n proto.offsetName = function (type?: \"short\" | \"long\") {\n const zone = this.$x.$timezone || dayjsFactory.tz.guess();\n const result = makeFormatParts(this.valueOf(), zone, {\n timeZoneName: type,\n }).find(\n (m: Intl.DateTimeFormatPart) => m.type.toLowerCase() === \"timezonename\"\n );\n\n return result && result.value;\n };\n\n const oldStartOf = proto.startOf;\n proto.startOf = function (units: string, startOf?: boolean) {\n if (!this.$x || !this.$x.$timezone) {\n return oldStartOf.call(this, units, startOf);\n }\n\n const withoutTz = dayjsFactory(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"));\n const startOfWithoutTz = oldStartOf.call(withoutTz, units, startOf);\n\n return (startOfWithoutTz as DayjsInternal).tz(this.$x.$timezone, true);\n };\n\n const tzFunction = function (\n input: string | number | Date | Dayjs,\n arg1?: string,\n arg2?: string\n ) {\n const parseFormat = arg2 && arg1;\n const timezone = arg2 || arg1 || defaultTimezone;\n const previousOffset = tzOffset(Number(dayjsFactory()), timezone!);\n if (typeof input !== \"string\") {\n return dayjsFactory(input as string | number | Date).tz(timezone!);\n }\n const localTs = dayjsFactory.utc(input, parseFormat).valueOf();\n const [targetTs, targetOffset] = fixOffset(\n localTs,\n previousOffset,\n timezone!\n );\n const ins = dayjsFactory(targetTs).utcOffset(targetOffset) as DayjsInternal;\n ins.$x.$timezone = timezone;\n\n return ins;\n } as DayjsFactory[\"tz\"];\n\n tzFunction.guess = function () {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n };\n\n tzFunction.setDefault = function (timezone?: string) {\n defaultTimezone = timezone;\n };\n\n dayjsFactory.tz = tzFunction;\n};\n\nexport default timezonePlugin;\n","import pureDayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport localeData from \"dayjs/plugin/localeData\";\nimport utc from \"dayjs/plugin/utc\";\nimport weekday from \"dayjs/plugin/weekday\";\nimport weekOfYear from \"dayjs/plugin/weekOfYear\";\n\nimport timezonePlugin from \"./timezonePlugin\";\n\npureDayjs.extend(weekOfYear);\npureDayjs.extend(weekday);\npureDayjs.extend(localeData);\npureDayjs.extend(utc);\npureDayjs.extend(timezonePlugin);\n\ninterface DayjsInternal extends Dayjs {\n $x: { $timezone?: string };\n}\n\ninterface DayjsWithTz {\n (\n ...args: [string | number | Date | Dayjs | null | undefined, string?]\n ): Dayjs;\n utc(input?: string | number | Date, format?: string): Dayjs;\n tz: {\n (\n input?: string | number | Date | Dayjs,\n arg1?: string,\n arg2?: string\n ): DayjsInternal;\n guess: () => string;\n setDefault: (timezone?: string) => void;\n };\n}\n\nclass LRUCache<K, V> {\n private limit: number;\n private cache: Map<K, V>;\n\n constructor(limit: number) {\n this.limit = limit;\n this.cache = new Map();\n }\n\n get(key: K): V | undefined {\n const value = this.cache.get(key);\n this.cache.delete(key);\n if (value !== undefined) {\n this.cache.set(key, value);\n }\n\n return value;\n }\n\n set(key: K, value: V): void {\n if (this.cache.size >= this.limit) {\n const oldestKey = this.cache.keys().next().value;\n if (oldestKey !== undefined) {\n this.cache.delete(oldestKey);\n }\n }\n this.cache.set(key, value);\n }\n\n has(key: K): boolean {\n return this.cache.has(key);\n }\n}\n\nconst hasTimezone = (dateString: string): boolean => {\n const timezoneRegex = /Z|[+-]\\d{2}:\\d{2}$|[+-]\\d{4}$|GMT([+-]\\d{4})?$/;\n\n return timezoneRegex.test(dateString);\n};\n\nconst cache = new LRUCache<string, Dayjs>(1000);\nconst pureDayjsWithTz = pureDayjs as unknown as DayjsWithTz;\n\nconst dayjs = (\n ...args: [string | number | Date | Dayjs | null | undefined, string?]\n): Dayjs => {\n const cacheKey = JSON.stringify(args);\n\n if (cache.has(cacheKey) && args[0] !== undefined) return cache.get(cacheKey)!;\n\n const userTimezone = pureDayjsWithTz.tz()?.$x?.$timezone;\n const browserTimezone = pureDayjsWithTz.tz.guess();\n const timezone = userTimezone || browserTimezone;\n\n if (userTimezone === browserTimezone || userTimezone === undefined) {\n const result = pureDayjsWithTz(...args);\n\n if (args[0] !== undefined) cache.set(cacheKey, result);\n\n return result;\n }\n\n const mutableArgs: [\n string | number | Date | Dayjs | null | undefined,\n string?,\n ] = [...args];\n\n if (\n mutableArgs.length > 0 &&\n (typeof mutableArgs[0] === \"string\" || mutableArgs[0] === null)\n ) {\n const pureDayjsArgs: [\n string | number | Date | Dayjs | null | undefined,\n string?,\n ] = [mutableArgs[0], mutableArgs[1]];\n\n if (typeof mutableArgs[0] === \"string\" && hasTimezone(mutableArgs[0])) {\n mutableArgs[0] = pureDayjsWithTz(...pureDayjsArgs);\n } else {\n mutableArgs[0] = pureDayjsWithTz(...pureDayjsArgs).format(\n \"YYYY-MM-DD HH:mm:ss\"\n );\n mutableArgs[1] = \"YYYY-MM-DD HH:mm:ss\";\n }\n }\n\n if (mutableArgs[0]?.toString() === \"Invalid Date\") {\n const result = pureDayjsWithTz(...mutableArgs);\n\n if (mutableArgs[0] !== undefined) cache.set(cacheKey, result);\n\n return result;\n }\n\n const result =\n mutableArgs.length === 2\n ? pureDayjsWithTz.tz(\n mutableArgs[0] as string | number | Date | Dayjs,\n mutableArgs[1],\n timezone\n )\n : pureDayjsWithTz.tz(\n mutableArgs[0] as string | number | Date | Dayjs,\n timezone\n );\n\n if (mutableArgs[0] !== undefined) cache.set(cacheKey, result as Dayjs);\n\n return result as Dayjs;\n};\n\nObject.assign(dayjs, { ...pureDayjs });\n\nexport const getTimezoneAppliedDateTime = (\n inputDateTime: Dayjs | Dayjs[] | null\n): Dayjs | (Dayjs | null)[] | null => {\n const timezoneAppliedDateTime = (date: Dayjs | null): Dayjs | null =>\n date && typeof date.format === \"function\"\n ? dayjs(date.format(\"YYYY-MM-DD HH:mm:ss\"))\n : null;\n\n return Array.isArray(inputDateTime)\n ? inputDateTime.map(timezoneAppliedDateTime)\n : timezoneAppliedDateTime(inputDateTime);\n};\n\nexport { dayjs };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const getParentKey = (key, tree) => {
|
|
2
|
+
for (const node of tree) {
|
|
3
|
+
if (node.children) {
|
|
4
|
+
if (node.children.some(child => child.key === key))
|
|
5
|
+
return node.key;
|
|
6
|
+
const parentKey = getParentKey(key, node.children);
|
|
7
|
+
if (parentKey)
|
|
8
|
+
return parentKey;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
};
|
|
13
|
+
const flattenTreeData = (tree) => {
|
|
14
|
+
const list = [];
|
|
15
|
+
const walk = (nodes) => {
|
|
16
|
+
nodes.forEach(node => {
|
|
17
|
+
if (typeof node.title === "string") {
|
|
18
|
+
list.push({ key: node.key, title: node.title });
|
|
19
|
+
}
|
|
20
|
+
if (node.children)
|
|
21
|
+
walk(node.children);
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
walk(tree);
|
|
25
|
+
return list;
|
|
26
|
+
};
|
|
27
|
+
const getExpandedKeysFromSearch = (searchValue, treeData, dataList) => dataList
|
|
28
|
+
.filter(item => item.title.toLowerCase().includes(searchValue.toLowerCase()))
|
|
29
|
+
.map(item => getParentKey(item.key, treeData))
|
|
30
|
+
.filter((key, i, self) => !!key && self.indexOf(key) === i);
|
|
31
|
+
|
|
32
|
+
export { getParentKey as a, flattenTreeData as f, getExpandedKeysFromSearch as g };
|
|
33
|
+
//# sourceMappingURL=search-BK7Ozh5_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-BK7Ozh5_.js","sources":["../src/components/Tree/utils/search.ts"],"sourcesContent":["import type { TreeNodeData } from \"../types\";\n\nexport const getParentKey = (\n key: string,\n tree: TreeNodeData[]\n): string | undefined => {\n for (const node of tree) {\n if (node.children) {\n if (node.children.some(child => child.key === key)) return node.key;\n const parentKey = getParentKey(key, node.children);\n if (parentKey) return parentKey;\n }\n }\n\n return undefined;\n};\n\nexport const flattenTreeData = (\n tree: TreeNodeData[]\n): { key: string; title: string }[] => {\n const list: { key: string; title: string }[] = [];\n const walk = (nodes: TreeNodeData[]) => {\n nodes.forEach(node => {\n if (typeof node.title === \"string\") {\n list.push({ key: node.key, title: node.title });\n }\n if (node.children) walk(node.children);\n });\n };\n walk(tree);\n\n return list;\n};\n\nexport const getExpandedKeysFromSearch = (\n searchValue: string,\n treeData: TreeNodeData[],\n dataList: { key: string; title: string }[]\n): string[] =>\n dataList\n .filter(item =>\n item.title.toLowerCase().includes(searchValue.toLowerCase())\n )\n .map(item => getParentKey(item.key, treeData))\n .filter((key, i, self): key is string => !!key && self.indexOf(key) === i);\n"],"names":[],"mappings":"MAEa,YAAY,GAAG,CAC1B,GAAW,EACX,IAAoB,KACE;AACtB,IAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,GAAG;YACnE,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;AAClD,YAAA,IAAI,SAAS;AAAE,gBAAA,OAAO,SAAS;QACjC;IACF;AAEA,IAAA,OAAO,SAAS;AAClB;AAEO,MAAM,eAAe,GAAG,CAC7B,IAAoB,KACgB;IACpC,MAAM,IAAI,GAAqC,EAAE;AACjD,IAAA,MAAM,IAAI,GAAG,CAAC,KAAqB,KAAI;AACrC,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACnB,YAAA,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;AAClC,gBAAA,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACjD;YACA,IAAI,IAAI,CAAC,QAAQ;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxC,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;IACD,IAAI,CAAC,IAAI,CAAC;AAEV,IAAA,OAAO,IAAI;AACb;AAEO,MAAM,yBAAyB,GAAG,CACvC,WAAmB,EACnB,QAAwB,EACxB,QAA0C,KAE1C;AACG,KAAA,MAAM,CAAC,IAAI,IACV,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAE7D,KAAA,GAAG,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;KAC5C,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,KAAoB,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-atoms",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"author": "BigBinary",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -26,6 +26,11 @@
|
|
|
26
26
|
"import": "./dist/primitives/*.js",
|
|
27
27
|
"require": "./dist/cjs/primitives/*.js"
|
|
28
28
|
},
|
|
29
|
+
"./components": {
|
|
30
|
+
"types": "./dist/components/index.d.ts",
|
|
31
|
+
"import": "./dist/components/index.js",
|
|
32
|
+
"require": "./dist/cjs/components/index.js"
|
|
33
|
+
},
|
|
29
34
|
"./components/*": {
|
|
30
35
|
"types": "./dist/components/*/index.d.ts",
|
|
31
36
|
"import": "./dist/components/*.js",
|
|
@@ -36,6 +41,11 @@
|
|
|
36
41
|
"types": "./dist/formik/index.d.ts",
|
|
37
42
|
"import": "./dist/formik/index.js",
|
|
38
43
|
"require": "./dist/cjs/formik/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./formik/*": {
|
|
46
|
+
"types": "./dist/formik/*.d.ts",
|
|
47
|
+
"import": "./dist/formik/*.js",
|
|
48
|
+
"require": "./dist/cjs/formik/*.js"
|
|
39
49
|
}
|
|
40
50
|
},
|
|
41
51
|
"sideEffects": [
|
|
@@ -67,6 +77,7 @@
|
|
|
67
77
|
"@base-ui/react": "^1.3.0",
|
|
68
78
|
"@bigbinary/neeto-commons-frontend": "4.13.113",
|
|
69
79
|
"@chromatic-com/storybook": "^5.0.1",
|
|
80
|
+
"@fontsource-variable/geist": "^5.2.8",
|
|
70
81
|
"@hookform/resolvers": "^5.2.2",
|
|
71
82
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
72
83
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
@@ -117,6 +128,7 @@
|
|
|
117
128
|
"@types/ramda": "^0",
|
|
118
129
|
"@types/react": "^19.2.14",
|
|
119
130
|
"@types/react-dom": "^19.2.3",
|
|
131
|
+
"@types/react-router-dom": "5",
|
|
120
132
|
"@types/rollup-plugin-peer-deps-external": "^2",
|
|
121
133
|
"@typescript-eslint/eslint-plugin": "^8.57.1",
|
|
122
134
|
"@typescript-eslint/parser": "^8.57.1",
|
|
@@ -145,6 +157,7 @@
|
|
|
145
157
|
"radix-ui": "^1.4.3",
|
|
146
158
|
"ramda": "^0.32.0",
|
|
147
159
|
"react": "^18.2.0",
|
|
160
|
+
"react-arborist": "^3.4.3",
|
|
148
161
|
"react-colorful": "^5.6.1",
|
|
149
162
|
"react-day-picker": "^9.14.0",
|
|
150
163
|
"react-dom": "^18.2.0",
|
|
@@ -152,6 +165,7 @@
|
|
|
152
165
|
"react-i18next": "^17.0.2",
|
|
153
166
|
"react-is": "^18.3.1",
|
|
154
167
|
"react-resizable-panels": "^4.7.5",
|
|
168
|
+
"react-router-dom": "5.3.3",
|
|
155
169
|
"recharts": "3.8.0",
|
|
156
170
|
"rollup": "^4.59.0",
|
|
157
171
|
"rollup-plugin-cleaner": "^1.0.0",
|
|
@@ -181,11 +195,8 @@
|
|
|
181
195
|
"react": "^18.2.0",
|
|
182
196
|
"react-colorful": "^5.6.1",
|
|
183
197
|
"react-dom": "^18.2.0",
|
|
184
|
-
"react-i18next": "^17.0.2"
|
|
198
|
+
"react-i18next": "^17.0.2",
|
|
199
|
+
"react-router-dom": "^5.3.3"
|
|
185
200
|
},
|
|
186
|
-
"packageManager": "yarn@4.9.2"
|
|
187
|
-
"dependencies": {
|
|
188
|
-
"@fontsource-variable/geist": "^5.2.8",
|
|
189
|
-
"react-arborist": "^3.4.3"
|
|
190
|
-
}
|
|
201
|
+
"packageManager": "yarn@4.9.2"
|
|
191
202
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion-BzfsJePA.js","sources":["../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, Children } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Accordion as PrimitiveAccordion,\n AccordionItem as PrimitiveAccordionItem,\n AccordionTrigger as PrimitiveAccordionTrigger,\n AccordionContent as PrimitiveAccordionContent,\n} from \"src/primitives/Accordion\";\n\ntype AccordionRootProps = React.ComponentProps<typeof PrimitiveAccordion>;\n\nexport interface AccordionProps extends Omit<AccordionRootProps, \"children\"> {\n /** Accordion.Item children. */\n children?: ReactNode;\n}\n\ninterface AccordionItemProps extends React.ComponentProps<\n typeof PrimitiveAccordionItem\n> {\n /** Header text displayed in the trigger. */\n title: string;\n /** Content rendered when the item is expanded. */\n children?: ReactNode;\n}\n\nconst AccordionItemComponent = forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ title, children, className, value, ...otherProps }, ref) => (\n <PrimitiveAccordionItem\n ref={ref}\n value={value}\n className={cn(className)}\n {...otherProps}\n >\n <PrimitiveAccordionTrigger>{title}</PrimitiveAccordionTrigger>\n <PrimitiveAccordionContent>{children}</PrimitiveAccordionContent>\n </PrimitiveAccordionItem>\n )\n);\n\nAccordionItemComponent.displayName = \"Accordion.Item\";\n\nconst Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n ({ className, children, ...otherProps }, ref) => {\n // Auto-generate value props for items that don't have one\n const enhancedChildren = Children.map(children, (child, index) => {\n if (!React.isValidElement<AccordionItemProps>(child)) return child;\n const childValue = child.props.value ?? `item-${index}`;\n return React.cloneElement(child, { value: childValue });\n });\n\n return (\n <PrimitiveAccordion ref={ref} className={cn(className)} {...otherProps}>\n {enhancedChildren}\n </PrimitiveAccordion>\n );\n }\n) as React.ForwardRefExoticComponent<\n AccordionProps & React.RefAttributes<HTMLDivElement>\n> & {\n Item: typeof AccordionItemComponent;\n};\n\nAccordion.displayName = \"Accordion\";\nAccordion.Item = AccordionItemComponent;\n\nexport { Accordion };\n"],"names":["_jsxs","PrimitiveAccordionItem","_jsx","PrimitiveAccordionTrigger","PrimitiveAccordionContent","React","PrimitiveAccordion"],"mappings":";;;;;AA0BA,MAAM,sBAAsB,GAAG,UAAU,CACvC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MACxDA,IAAA,CAACC,aAAsB,EAAA,EACrB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAA,GACpB,UAAU,EAAA,QAAA,EAAA,CAEdC,GAAA,CAACC,gBAAyB,EAAA,EAAA,QAAA,EAAE,KAAK,EAAA,CAA6B,EAC9DD,GAAA,CAACE,gBAAyB,EAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAA6B,CAAA,EAAA,CAC1C,CAC1B,CACF;AAED,sBAAsB,CAAC,WAAW,GAAG,gBAAgB;AAErD,MAAM,SAAS,GAAG,UAAU,CAC1B,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,KAAI;;AAE9C,IAAA,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAI;AAC/D,QAAA,IAAI,CAACC,cAAK,CAAC,cAAc,CAAqB,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QAClE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AACvD,QAAA,OAAOA,cAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACzD,IAAA,CAAC,CAAC;IAEF,QACEH,IAACI,WAAkB,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAA,GAAM,UAAU,YACnE,gBAAgB,EAAA,CACE;AAEzB,CAAC;AAOH,SAAS,CAAC,WAAW,GAAG,WAAW;AACnC,SAAS,CAAC,IAAI,GAAG,sBAAsB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColorPicker-D-7QGnf9.js","sources":["../node_modules/lucide-react/dist/esm/icons/pipette.js","../src/components/ColorPicker/hooks/useEyeDropper.ts","../src/components/ColorPicker/constants.ts","../src/components/ColorPicker/hooks/useRecentlyUsedColors.ts","../src/components/ColorPicker/utils.ts","../src/components/ColorPicker/Palette.tsx","../src/components/ColorPicker/Target.tsx","../src/components/ColorPicker/ColorPicker.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12\",\n key: \"1y3wsu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z\",\n key: \"110lr1\"\n }\n ],\n [\"path\", { d: \"m2 22 .414-.414\", key: \"jhxm08\" }]\n];\nconst Pipette = createLucideIcon(\"pipette\", __iconNode);\n\nexport { __iconNode, Pipette as default };\n//# sourceMappingURL=pipette.js.map\n","import { useCallback } from \"react\";\n\ninterface EyeDropperResult {\n sRGBHex: string;\n}\n\ndeclare global {\n interface Window {\n EyeDropper?: new () => { open: () => Promise<EyeDropperResult> };\n }\n}\n\nconst isSupported = typeof window !== \"undefined\" && \"EyeDropper\" in window;\n\nexport const useEyeDropper = () => {\n const open = useCallback(async (): Promise<string> => {\n if (!window.EyeDropper) throw new Error(\"EyeDropper API not supported\");\n\n const dropper = new window.EyeDropper();\n const result = await dropper.open();\n\n return result.sRGBHex;\n }, []);\n\n return { isSupported, open };\n};\n","export const DEFAULT_PALETTE_COLORS = [\n { hex: \"#FFFFFF\" },\n { hex: \"#D6D6D6\" },\n { hex: \"#0A0E13\" },\n { hex: \"#FECE1E\" },\n { hex: \"#F32E48\" },\n { hex: \"#02C39A\" },\n { hex: \"#2A79C4\" },\n { hex: \"#B3E5FC\" },\n { hex: \"#C3C6F9\" },\n { hex: \"#8064CE\" },\n { hex: \"#FE861E\" },\n { hex: \"#FF7DC9\" },\n { hex: \"#028090\" },\n { hex: \"#095482\" },\n];\n\nexport const RECENTLY_USED_STORAGE_KEY = \"recently-used-colors\";\n\nexport const TARGET_SIZES = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n} as const;\n\nexport const PICKER_HEIGHT: Record<string, string> = {\n small: \"100px\",\n medium: \"120px\",\n large: \"140px\",\n};\n","import { useSyncExternalStore } from \"react\";\n\nimport { RECENTLY_USED_STORAGE_KEY } from \"../constants\";\n\ninterface ColorValue {\n hex: string;\n rgb: string | { r: number; g: number; b: number; a?: number };\n}\n\nconst getFromStorage = (key: string, fallback: ColorValue[]): ColorValue[] => {\n try {\n const stored = localStorage.getItem(key);\n\n return stored ? JSON.parse(stored) : fallback;\n } catch {\n return fallback;\n }\n};\n\nconst setToStorage = (key: string, value: ColorValue[]) => {\n try {\n localStorage.setItem(key, JSON.stringify(value));\n } catch {\n // Silently fail if storage is unavailable\n }\n};\n\nconst createSyncedStore = (storageKey: string) => {\n const listeners = new Set<() => void>();\n\n const store = {\n value: getFromStorage(storageKey, []),\n getSnapshot: () => store.value,\n getServerSnapshot: () => [] as ColorValue[],\n setValue: (newValue: ColorValue[]) => {\n store.value = newValue;\n setToStorage(storageKey, newValue);\n listeners.forEach(listener => listener());\n },\n subscribe: (callback: () => void) => {\n listeners.add(callback);\n\n const storageEventHandler = (event: StorageEvent) => {\n if (event.key !== storageKey) return;\n store.value = getFromStorage(storageKey, []);\n listeners.forEach(listener => listener());\n };\n\n if (listeners.size === 1) {\n window.addEventListener(\"storage\", storageEventHandler);\n }\n\n return () => {\n listeners.delete(callback);\n if (listeners.size === 0) {\n window.removeEventListener(\"storage\", storageEventHandler);\n }\n };\n },\n };\n\n return store;\n};\n\nconst store = createSyncedStore(RECENTLY_USED_STORAGE_KEY);\n\nexport const useRecentlyUsedColors = (): [\n ColorValue[],\n (value: ColorValue[]) => void,\n] => [\n useSyncExternalStore(\n store.subscribe,\n store.getSnapshot,\n store.getServerSnapshot\n ),\n store.setValue,\n];\n","/**\n * Validates a hex color string (3, 4, 6, or 8 digits with optional #).\n */\nexport const isValidHex = (hex: string): boolean =>\n /^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(hex);\n\n/**\n * Parses a hex color string into RGBA components.\n * Returns { r: 0, g: 0, b: 0, a: 1 } for invalid inputs.\n */\nexport const hexToRgb = (\n hex: string\n): { r: number; g: number; b: number; a: number } => {\n const raw = hex.replace(/^#/, \"\");\n\n if (\n !/^([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(raw)\n ) {\n return { r: 0, g: 0, b: 0, a: 1 };\n }\n\n let r: number,\n g: number,\n b: number,\n a = 255;\n if (raw.length === 3 || raw.length === 4) {\n r = parseInt(raw[0] + raw[0], 16);\n g = parseInt(raw[1] + raw[1], 16);\n b = parseInt(raw[2] + raw[2], 16);\n if (raw.length === 4) a = parseInt(raw[3] + raw[3], 16);\n } else {\n r = parseInt(raw.slice(0, 2), 16);\n g = parseInt(raw.slice(2, 4), 16);\n b = parseInt(raw.slice(4, 6), 16);\n if (raw.length === 8) a = parseInt(raw.slice(6, 8), 16);\n }\n\n return { r, g, b, a: Math.round((a / 255) * 100) / 100 };\n};\n\n/**\n * Converts a hex color to an 8-digit hex string (#RRGGBBAA).\n */\nexport const hexToHex8 = (hex: string): string => {\n const { r, g, b, a } = hexToRgb(hex);\n const alpha = Math.round(a * 255);\n\n return `#${[r, g, b, alpha].map(v => v.toString(16).padStart(2, \"0\")).join(\"\")}`;\n};\n\n/**\n * Converts a color value to a normalized { hex, rgb } object.\n * Handles transparency and validity checks.\n */\nexport const getColor = (\n colorValue: string,\n showTransparencyControl: boolean\n): { hex: string; rgb: { r: number; g: number; b: number; a: number } } => {\n if (!isValidHex(colorValue)) {\n return { hex: colorValue, rgb: { r: 0, g: 0, b: 0, a: 1 } };\n }\n\n const rgb = hexToRgb(colorValue);\n\n if (rgb.a === 0) {\n return { hex: colorValue, rgb };\n }\n\n const hex = showTransparencyControl\n ? hexToHex8(colorValue)\n : `#${colorValue.replace(/^#/, \"\").slice(0, 6)}`;\n\n return { hex, rgb: hexToRgb(hex) };\n};\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { isValidHex } from \"./utils\";\nimport { DEFAULT_PALETTE_COLORS } from \"./constants\";\nimport type { PaletteColor } from \"./types\";\n\nexport interface PaletteProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Currently selected color. */\n color?: string;\n /** List of colors to render. */\n colorList?: PaletteColor[];\n /** Callback when a color swatch is clicked. */\n onChange?: (color: string) => void;\n}\n\nconst Palette = forwardRef<HTMLDivElement, PaletteProps>(\n (\n {\n color,\n colorList = DEFAULT_PALETTE_COLORS,\n onChange,\n className,\n ...props\n },\n ref\n ) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-row flex-wrap items-start justify-start gap-1\",\n className\n )}\n {...props}\n >\n {colorList.map(item => {\n const value = item.hex ?? item.rgb ?? \"\";\n const isActive =\n !!color && !!value && color.toLowerCase() === value.toLowerCase();\n\n return (\n <button\n type=\"button\"\n key={value}\n data-testid=\"color-palette-item\"\n className={cn(\n \"size-6 rounded-[5px] border cursor-pointer overflow-hidden transition-colors\",\n isActive\n ? \"border-muted-foreground\"\n : \"border-border hover:border-muted-foreground/50\"\n )}\n onClick={() => onChange?.(value)}\n >\n <span\n className={cn(\n \"block size-full\",\n isValidHex(value)\n ? \"\"\n : \"bg-[repeating-conic-gradient(#ccc_0_25%,transparent_0_50%)] bg-[length:8px_8px]\"\n )}\n style={isValidHex(value) ? { backgroundColor: value } : undefined}\n />\n </button>\n );\n })}\n </div>\n )\n);\n\nPalette.displayName = \"ColorPicker.Palette\";\n\nexport { Palette };\n","import React, { forwardRef } from \"react\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nconst targetVariants = cva(\n \"inline-flex items-center justify-between rounded-md border border-input bg-background transition-colors hover:border-muted-foreground focus-visible:outline-none focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-primary/15 cursor-pointer\",\n {\n variants: {\n size: {\n small: \"h-7 p-0.5 gap-2\",\n medium: \"h-8 p-1 gap-2\",\n large: \"h-10 p-1.5 gap-3\",\n },\n },\n defaultVariants: {\n size: \"large\",\n },\n }\n);\n\nexport interface TargetProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"size\">,\n VariantProps<typeof targetVariants> {\n /** Show hex code text beside the color swatch. */\n showHexValue?: boolean;\n /** The original color prop value. */\n color?: string;\n /** The resolved color value to display. */\n colorValue?: string;\n}\n\nconst Target = forwardRef<HTMLButtonElement, TargetProps>(\n (\n { size = \"large\", showHexValue, color, colorValue, className, ...props },\n ref\n ) => (\n <button\n ref={ref}\n type=\"button\"\n data-testid=\"color-picker-target\"\n className={cn(targetVariants({ size }), className)}\n {...props}\n >\n {showHexValue && (\n <span className=\"text-sm font-medium text-foreground min-w-[4.5rem] ps-1\">\n {color}\n </span>\n )}\n <span className=\"inline-flex items-center gap-2\">\n <span\n className=\"block size-5 rounded-md border border-border\"\n style={{ backgroundColor: colorValue }}\n />\n <ChevronDown className=\"size-4 text-muted-foreground\" />\n </span>\n </button>\n )\n);\n\nTarget.displayName = \"ColorPicker.Target\";\n\nexport { Target };\n","import React, { forwardRef, useState, useRef } from \"react\";\n\nimport { Pipette } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n HexColorPicker,\n HexColorInput,\n HexAlphaColorPicker,\n} from \"react-colorful\";\nimport { Button } from \"src/primitives/Button\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"src/primitives/Popover\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { useEyeDropper } from \"./hooks/useEyeDropper\";\nimport { useRecentlyUsedColors } from \"./hooks/useRecentlyUsedColors\";\nimport { Palette } from \"./Palette\";\nimport { Target } from \"./Target\";\nimport { PICKER_HEIGHT } from \"./constants\";\nimport type { ColorPickerProps } from \"./types\";\nimport { getColor } from \"./utils\";\n\nconst ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(\n (\n {\n color = \"\",\n size = \"large\",\n onChange,\n dropdownProps,\n showEyeDropper = true,\n showHexValue = false,\n showTransparencyControl = false,\n showPicker = true,\n showHexPicker = true,\n colorPalette,\n showRecentlyUsedColors = showPicker,\n className,\n },\n ref\n ) => {\n const { t } = useTranslation();\n const [colorInternal, setColorInternal] = useState(color);\n const [isColorSelected, setIsColorSelected] = useState(false);\n const [open, setOpen] = useState(false);\n const hexColorInputValue = useRef(\"\");\n const { isSupported: eyeDropperSupported, open: openEyeDropper } =\n useEyeDropper();\n const [recentlyUsedColors, setRecentlyUsedColors] = useRecentlyUsedColors();\n\n const PickerComponent = showTransparencyControl\n ? HexAlphaColorPicker\n : HexColorPicker;\n\n const colorValue = color ?? colorInternal ?? \"\";\n\n const onColorChange = (value: string) => {\n setIsColorSelected(true);\n\n if (onChange) {\n onChange(getColor(value, showTransparencyControl));\n } else {\n setColorInternal(value);\n }\n };\n\n const onColorInputChange = (hex: string) => {\n hexColorInputValue.current = hex;\n const expectedLength = showTransparencyControl ? 9 : 7;\n if (hex.length !== expectedLength) return;\n\n onColorChange(hex);\n hexColorInputValue.current = \"\";\n };\n\n const onBlur = () => {\n if (!hexColorInputValue.current) return;\n\n onColorChange(hexColorInputValue.current);\n hexColorInputValue.current = \"\";\n };\n\n const pickColor = async () => {\n try {\n const hex = await openEyeDropper();\n onColorChange(hex);\n } catch {\n // User cancelled or API unavailable\n }\n };\n\n const onOpenChange = (nextOpen: boolean) => {\n if (!nextOpen && showRecentlyUsedColors && isColorSelected) {\n const newColor = getColor(colorValue, showTransparencyControl);\n const filtered = recentlyUsedColors.filter(\n ({ hex }) => hex !== newColor.hex\n );\n const updated = [newColor, ...filtered];\n if (updated.length > 14) updated.pop();\n\n setRecentlyUsedColors(updated);\n setIsColorSelected(false);\n }\n\n setOpen(nextOpen);\n };\n\n return (\n <Popover open={open} onOpenChange={onOpenChange}>\n <PopoverTrigger asChild>\n <Target\n color={color}\n colorValue={colorValue}\n showHexValue={showHexValue}\n size={size}\n />\n </PopoverTrigger>\n <PopoverContent\n ref={ref}\n align=\"start\"\n side=\"bottom\"\n className={cn(\"w-auto p-3\", className)}\n {...dropdownProps}\n >\n <div className=\"flex flex-col gap-3 w-56\">\n {showPicker && (\n <>\n {showHexPicker && (\n <div\n data-testid=\"neeto-color-picker-section\"\n style={{\n [\"--react-colorful-height\" as string]:\n PICKER_HEIGHT[size] ?? \"140px\",\n }}\n >\n <PickerComponent\n color={colorValue}\n onChange={onColorChange}\n style={{\n width: \"100%\",\n height: PICKER_HEIGHT[size] ?? \"140px\",\n }}\n />\n </div>\n )}\n <div className=\"flex items-center justify-center gap-2\">\n {showEyeDropper && eyeDropperSupported && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={pickColor}\n aria-label={t(\n \"neetoatoms.colorPicker.pickColor\",\n \"Pick color from screen\"\n )}\n >\n <Pipette className=\"size-4\" />\n </Button>\n )}\n <div\n className=\"flex-1\"\n data-testid=\"colorpicker-editable-input\"\n >\n <HexColorInput\n prefixed\n alpha={!!showTransparencyControl}\n color={colorValue}\n data-testid=\"colorpicker-editable-input-textbox\"\n onChange={onColorInputChange}\n onBlur={onBlur}\n className=\"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-sm outline-none focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-primary/15\"\n />\n </div>\n </div>\n </>\n )}\n <div\n data-testid=\"color-palette\"\n className={cn(showPicker && \"border-t border-border pt-3\")}\n >\n <Palette\n color={color}\n colorList={colorPalette}\n onChange={onColorChange}\n />\n </div>\n {showRecentlyUsedColors && recentlyUsedColors.length > 0 && (\n <div\n className=\"border-t border-border pt-3\"\n data-testid=\"color-palette-recently-used\"\n >\n <p className=\"text-xs font-medium text-muted-foreground mb-2\">\n {t(\"neetoatoms.colorPicker.recentlyUsed\", \"Recently used\")}\n </p>\n <Palette\n colorList={recentlyUsedColors}\n onChange={onColorChange}\n />\n </div>\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n);\n\nColorPicker.displayName = \"ColorPicker\";\n\nexport { ColorPicker };\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Select-BGODpJGc.js","sources":["../src/utils/hyphenize.ts","../src/utils/fieldIds.ts","../src/hooks/useAsyncOptions.ts","../src/hooks/useLazyLoadSentinel.ts","../src/hooks/useCreatableItems.ts","../src/components/Select/types.ts","../src/components/Select/utils.ts","../src/hooks/useMultiSelectOptions.ts","../src/components/Select/constants.ts","../src/hooks/useSelectState.ts","../src/hooks/useMultiSelectState.ts","../src/hooks/useComboboxAnchor.ts","../src/components/Select/OptionItem.tsx","../src/components/Select/MultiSelectDropdown.tsx","../src/components/Select/SelectCombobox.tsx","../src/components/Select/MultiSelectCombobox.tsx","../src/components/Select/Select.tsx"],"sourcesContent":["export function hyphenize(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/[\\s_]+/g, \"-\")\n .toLowerCase();\n}\n","import { hyphenize } from \"./hyphenize\";\n\nexport function buildAriaDescribedBy(\n error: string,\n errorId: string,\n helpText: React.ReactNode,\n helpTextId: string\n): string | undefined {\n return (\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined\n );\n}\n\nexport function buildTestIdPrefix(\n dataTestId: string | undefined,\n label: string\n): string | undefined {\n return dataTestId ?? (label ? hyphenize(label) : undefined);\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport type { SelectOptionBase } from \"src/components/Select/types\";\n\ninterface UseAsyncOptionsConfig {\n loadOptions?: (inputValue: string) => Promise<SelectOptionBase[]>;\n defaultOptions?: boolean | SelectOptionBase[];\n cacheOptions?: boolean;\n}\n\ninterface UseAsyncOptionsReturn {\n asyncOptions: SelectOptionBase[];\n isLoading: boolean;\n handleAsyncInputChange: (value: string) => void;\n}\n\nexport function useAsyncOptions({\n loadOptions,\n defaultOptions = false,\n cacheOptions = false,\n}: UseAsyncOptionsConfig): UseAsyncOptionsReturn {\n const [asyncOptions, setAsyncOptions] = useState<SelectOptionBase[]>(() =>\n Array.isArray(defaultOptions) ? defaultOptions : []\n );\n const [isLoading, setIsLoading] = useState(false);\n const cacheRef = useRef<Record<string, SelectOptionBase[]>>({});\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const latestRequestRef = useRef(0);\n const mountedRef = useRef(true);\n\n // Load default options on mount when `defaultOptions === true`\n useEffect(() => {\n if (!loadOptions || defaultOptions !== true) return;\n let cancelled = false;\n setIsLoading(true);\n loadOptions(\"\")\n .then(results => {\n if (cancelled) return;\n setAsyncOptions(results);\n if (cacheOptions) cacheRef.current[\"\"] = results;\n setIsLoading(false);\n })\n .catch(() => {\n if (!cancelled) setIsLoading(false);\n });\n return () => {\n cancelled = true;\n };\n }, []);\n\n // Clean up debounce timer and mark unmounted\n useEffect(() => {\n return () => {\n mountedRef.current = false;\n if (debounceRef.current) clearTimeout(debounceRef.current);\n };\n }, []);\n\n const handleAsyncInputChange = useCallback(\n (value: string) => {\n if (!loadOptions) return;\n\n const query = value.trim();\n\n // Check cache first\n if (cacheOptions && query in cacheRef.current) {\n setAsyncOptions(cacheRef.current[query]);\n return;\n }\n\n // Debounce the fetch\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n const requestId = ++latestRequestRef.current;\n setIsLoading(true);\n loadOptions(query)\n .then(results => {\n if (requestId !== latestRequestRef.current || !mountedRef.current)\n return;\n setAsyncOptions(results);\n if (cacheOptions) cacheRef.current[query] = results;\n setIsLoading(false);\n })\n .catch(() => {\n if (requestId === latestRequestRef.current && mountedRef.current) {\n setIsLoading(false);\n }\n });\n }, 300);\n },\n [loadOptions, cacheOptions]\n );\n\n return { asyncOptions, isLoading, handleAsyncInputChange };\n}\n","import { useCallback, useEffect, useRef } from \"react\";\n\ninterface UseLazyLoadSentinelConfig {\n fetchMore?: () => void;\n isEnabled: boolean;\n}\n\nexport function useLazyLoadSentinel({\n fetchMore,\n isEnabled,\n}: UseLazyLoadSentinelConfig) {\n const observerRef = useRef<IntersectionObserver | null>(null);\n const fetchMoreRef = useRef(fetchMore);\n fetchMoreRef.current = fetchMore;\n\n const sentinelRef = useCallback(\n (node: HTMLDivElement | null) => {\n observerRef.current?.disconnect();\n observerRef.current = null;\n\n if (!node || !isEnabled) return;\n\n const observer = new IntersectionObserver(\n entries => {\n if (entries[0]?.isIntersecting) fetchMoreRef.current?.();\n },\n { root: null, rootMargin: \"0px\", threshold: 0.1 }\n );\n observer.observe(node);\n observerRef.current = observer;\n },\n [isEnabled]\n );\n\n // Clean up observer on unmount\n useEffect(() => {\n return () => {\n observerRef.current?.disconnect();\n };\n }, []);\n\n return sentinelRef;\n}\n","import React, { useCallback, useMemo, useState } from \"react\";\n\nimport { computeEffectiveItems } from \"src/components/Select/utils\";\nimport type { SelectOptionBase as MultiSelectOptionBase } from \"src/components/Select/types\";\n\nexport const CREATE_PREFIX = \"__create__:\";\n\ninterface UseCreatableItemsConfig {\n isCreatable: boolean;\n isGrouped: boolean;\n flatOptions: MultiSelectOptionBase[];\n selectedValues: string[];\n baseUiItems?: string[] | { label: string; items: string[] }[];\n onCreateOption?: (inputValue: string) => void;\n onChange?: (values: string[]) => void;\n onAsyncInputChange?: (value: string) => void;\n children?: React.ReactNode;\n}\n\ninterface UseCreatableItemsReturn {\n inputValue: string;\n showCreateOption: boolean;\n effectiveItems: string[] | { label: string; items: string[] }[] | undefined;\n creatableFilter: (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => boolean;\n handleInputValueChange: (value: string) => void;\n handleValueChange: (next: string[] | null) => void;\n}\n\nexport function useCreatableItems({\n isCreatable,\n isGrouped,\n flatOptions,\n selectedValues,\n baseUiItems,\n onCreateOption,\n onChange,\n onAsyncInputChange,\n children,\n}: UseCreatableItemsConfig): UseCreatableItemsReturn {\n const [inputValue, setInputValue] = useState(\"\");\n\n const handleInputValueChange = useCallback(\n (value: string) => {\n setInputValue(value);\n onAsyncInputChange?.(value);\n },\n [onAsyncInputChange]\n );\n\n const trimmedInput = inputValue.trim();\n const showCreateOption = useMemo(() => {\n if (!isCreatable || trimmedInput.length === 0) return false;\n const lower = trimmedInput.toLowerCase();\n return (\n !flatOptions.some(\n o => o.label.toLowerCase() === lower || o.value.toLowerCase() === lower\n ) && !selectedValues.includes(trimmedInput)\n );\n }, [isCreatable, trimmedInput, flatOptions, selectedValues]);\n\n const effectiveItems = React.useMemo(\n () =>\n computeEffectiveItems(\n children,\n baseUiItems,\n showCreateOption,\n isGrouped,\n trimmedInput\n ),\n [baseUiItems, children, isGrouped, showCreateOption, trimmedInput]\n );\n\n // Custom filter: always pass the \"Create\" item through\n const creatableFilter = useCallback(\n (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => {\n if (itemValue.startsWith(CREATE_PREFIX)) return true;\n const label = itemToString?.(itemValue) ?? itemValue;\n return label.toLowerCase().includes(query.toLowerCase());\n },\n []\n );\n\n const handleValueChange = useCallback(\n (next: string[] | null) => {\n const raw = next ?? [];\n\n const createEntry = raw.find(v => v.startsWith(CREATE_PREFIX));\n if (createEntry) {\n const newValue = createEntry.slice(CREATE_PREFIX.length);\n const withNewValue = raw.map(v => (v === createEntry ? newValue : v));\n onCreateOption?.(newValue);\n onChange?.(withNewValue);\n return;\n }\n\n onChange?.(raw);\n },\n [onChange, onCreateOption]\n );\n\n return {\n inputValue,\n showCreateOption,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n };\n}\n","import type React from \"react\";\n\nimport type { ComboboxContent } from \"src/primitives/Combobox\";\nimport type { FieldLabel } from \"src/primitives/Field\";\n\nexport interface OptionBase {\n /** Display text for the option. */\n label: string;\n /** Unique value for the option. */\n value: string;\n /** Whether the option is disabled. */\n disabled?: boolean;\n}\n\nexport interface OptionGroup {\n /** Group heading text. */\n label: string;\n /** Options within this group. */\n options: OptionBase[];\n}\n\nexport type Option = OptionBase | OptionGroup;\n\nexport function isOptionGroup(opt: Option): opt is OptionGroup {\n return \"options\" in opt && Array.isArray(opt.options);\n}\n\nexport type SelectOptionBase = OptionBase;\nexport type SelectOptionGroup = OptionGroup;\nexport type SelectOption = Option;\n\ntype SelectSize = \"small\" | \"medium\" | \"large\";\n\ninterface SelectSharedProps {\n /** Unique identifier for the select. Auto-generated if omitted. */\n id?: string;\n /** Name attribute forwarded to the underlying input. */\n name?: string;\n /** Size of the trigger. */\n size?: SelectSize;\n /** Label displayed above the select. */\n label?: string;\n /** Error message displayed below the select. */\n error?: string;\n /** Help text displayed below the select. */\n helpText?: React.ReactNode;\n /** Placeholder text when no value is selected. */\n placeholder?: string;\n /** Flat or grouped option list. */\n options?: SelectOption[];\n /** Disable the select. */\n isDisabled?: boolean;\n /** Mark as required. */\n required?: boolean;\n /**\n * Enable search/filtering of options by typing in the input.\n * When false, the input is hidden and the trigger shows the selected label.\n * @default true\n */\n isSearchable?: boolean;\n /** Whether the first matching item is highlighted automatically. @default true */\n autoHighlight?: boolean;\n /** Callback fired when the dropdown opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /**\n * Positioning strategy for the dropdown content.\n * @deprecated The Combobox primitive always uses popper-style positioning.\n * Use `contentProps.side` and `contentProps.align` for positioning control.\n */\n position?: \"item-aligned\" | \"popper\";\n /** Show a clear/reset button when a value is selected. */\n isClearable?: boolean;\n /**\n * Allow creating new options by typing a value that doesn't exist.\n * Works in both single and multi mode.\n */\n isCreatable?: boolean;\n /**\n * Callback fired when a new option is created via the \"Create X\" item.\n * The parent should update the `options` list to include the new value.\n */\n onCreateOption?: (inputValue: string) => void;\n /**\n * Customize the label for the \"Create\" option in the dropdown.\n * @default (inputValue) => `Create \"${inputValue}\"`\n */\n formatCreateLabel?: (inputValue: string) => string;\n /**\n * Async function that fetches options based on the current input value.\n * Works in both single and multi mode.\n */\n loadOptions?: (inputValue: string) => Promise<SelectOptionBase[]>;\n /**\n * Options to show before the user types anything.\n * When `true`, `loadOptions(\"\")` is called on mount.\n * @default false\n */\n defaultOptions?: boolean | SelectOptionBase[];\n /**\n * Cache results from `loadOptions` so repeated queries are instant.\n * @default false\n */\n cacheOptions?: boolean;\n /** Text shown while `loadOptions` is fetching. @default \"Loading…\" */\n loadingMessage?: string;\n /** Text displayed when no options match. @default \"No results found.\" */\n emptyMessage?: string;\n /**\n * Enable lazy loading of options as the user scrolls.\n * @default false\n */\n isAsyncLoadOptionEnabled?: boolean;\n /** Callback to load the next batch of options (lazy loading). */\n fetchMore?: () => void;\n /** Total number of options on the server (lazy loading). */\n totalOptionsCount?: number;\n /** Custom data-testid prefix for the component tree. */\n dataTestId?: string;\n /** Props forwarded to the FieldLabel. */\n labelProps?: Omit<\n React.ComponentProps<typeof FieldLabel>,\n \"htmlFor\" | \"children\"\n >;\n /** Props forwarded to the ComboboxContent. */\n contentProps?: Omit<\n React.ComponentProps<typeof ComboboxContent>,\n \"anchor\" | \"children\"\n >;\n /** Additional CSS class names for the outermost wrapper. */\n className?: string;\n /** Additional CSS class names for the input/trigger element. */\n inputClassName?: string;\n /** Children rendered inside the dropdown (overrides `options`). */\n children?: React.ReactNode;\n}\n\ninterface SingleSelectProps extends SelectSharedProps {\n /** When true, multiple values can be selected and the trigger shows chips. @default false */\n isMulti?: false;\n /** Controlled selected value. */\n value?: string;\n /** Default selected value (uncontrolled). */\n defaultValue?: string;\n /** Callback fired when value changes. */\n onChange?: (value: string) => void;\n}\n\ninterface MultiSelectVariantProps extends SelectSharedProps {\n /** When true, multiple values can be selected and the trigger shows chips. */\n isMulti: true;\n /** Controlled selected values. */\n value?: string[];\n /** Default selected values (uncontrolled). */\n defaultValue?: string[];\n /** Callback fired when selected values change. */\n onChange?: (values: string[]) => void;\n /** Additional CSS class names for the chips container. */\n chipsClassName?: string;\n /** Hide the remove button on individual chips. */\n hideChipRemove?: boolean;\n}\n\nexport type SelectProps = SingleSelectProps | MultiSelectVariantProps;\n\nexport type MultiSelectProps = Extract<SelectProps, { isMulti: true }>;\n","import { CREATE_PREFIX } from \"src/hooks/useCreatableItems\";\nimport { isOptionGroup } from \"./types\";\nimport type {\n SelectOption as MultiSelectOption,\n SelectOptionBase as MultiSelectOptionBase,\n} from \"./types\";\n\n/** Flatten grouped options into a flat lookup array. */\nexport function flattenOptions(\n options: MultiSelectOption[]\n): MultiSelectOptionBase[] {\n return options.flatMap(opt => (isOptionGroup(opt) ? opt.options : [opt]));\n}\n\n/** Check if any option is a group. */\nexport function hasGroups(options: MultiSelectOption[]): boolean {\n return options.some(isOptionGroup);\n}\n\n/** Convert options to base-ui `items` format for filtering support. */\nexport function toBaseUiItems(\n options: MultiSelectOption[]\n): string[] | { label: string; items: string[] }[] {\n if (hasGroups(options)) {\n return options.filter(isOptionGroup).map(g => ({\n label: g.label,\n items: g.options.map(o => o.value),\n }));\n }\n return (options as MultiSelectOptionBase[]).map(o => o.value);\n}\n\n/** Build the effective items array, appending a \"Create\" entry when needed. */\nexport function computeEffectiveItems(\n children: unknown,\n baseUiItems: string[] | { label: string; items: string[] }[] | undefined,\n showCreateOption: boolean,\n isGrouped: boolean,\n trimmedInput: string\n): string[] | { label: string; items: string[] }[] | undefined {\n if (children) return undefined;\n\n const createValue = showCreateOption\n ? `${CREATE_PREFIX}${trimmedInput}`\n : null;\n\n if (!baseUiItems && !createValue) return undefined;\n\n const base = baseUiItems ?? ([] as string[]);\n\n if (!createValue) return base;\n\n if (!isGrouped) {\n return [...(base as string[]), createValue];\n }\n\n return [\n ...(base as { label: string; items: string[] }[]),\n { label: \"\", items: [createValue] },\n ];\n}\n","import React from \"react\";\n\nimport { useAsyncOptions } from \"./useAsyncOptions\";\nimport { useLazyLoadSentinel } from \"./useLazyLoadSentinel\";\nimport {\n flattenOptions,\n hasGroups,\n toBaseUiItems,\n} from \"src/components/Select/utils\";\nimport type { SelectOption as MultiSelectOption } from \"src/components/Select/types\";\n\ninterface UseMultiSelectOptionsConfig {\n options?: MultiSelectOption[];\n loadOptions?: (\n inputValue: string\n ) => Promise<{ label: string; value: string; disabled?: boolean }[]>;\n defaultOptions?:\n | boolean\n | { label: string; value: string; disabled?: boolean }[];\n cacheOptions?: boolean;\n isAsyncLoadOptionEnabled?: boolean;\n fetchMore?: () => void;\n totalOptionsCount?: number;\n}\n\nexport function useMultiSelectOptions(props: UseMultiSelectOptionsConfig) {\n const isAsync = !!props.loadOptions;\n\n const { asyncOptions, isLoading, handleAsyncInputChange } = useAsyncOptions({\n loadOptions: props.loadOptions,\n defaultOptions: props.defaultOptions ?? false,\n cacheOptions: props.cacheOptions ?? false,\n });\n\n const resolvedOptions: MultiSelectOption[] = isAsync\n ? asyncOptions\n : (props.options ?? []);\n const flatOptions = flattenOptions(resolvedOptions);\n const isGrouped = hasGroups(resolvedOptions);\n\n const baseUiItems = React.useMemo(\n () =>\n resolvedOptions.length > 0 ? toBaseUiItems(resolvedOptions) : undefined,\n [resolvedOptions]\n );\n\n const hasMoreLazy =\n (props.isAsyncLoadOptionEnabled ?? false) &&\n typeof props.totalOptionsCount === \"number\" &&\n flatOptions.length < props.totalOptionsCount;\n\n const loaderCallbackRef = useLazyLoadSentinel({\n fetchMore: props.fetchMore,\n isEnabled: props.isAsyncLoadOptionEnabled ?? false,\n });\n\n return {\n isAsync,\n resolvedOptions,\n flatOptions,\n isGrouped,\n isLoading,\n handleAsyncInputChange,\n baseUiItems,\n hasMoreLazy,\n loaderCallbackRef,\n };\n}\n","// SIZE_CONFIG is shared by both SelectCombobox (single-select) and\n// MultiSelectCombobox (multi-select). Keys mirror the MultiSelect constants\n// that previously lived in MultiSelect.constants.ts.\nexport const SIZE_CONFIG: Record<\n \"small\" | \"medium\" | \"large\",\n { chips: string; input: string; chip: string }\n> = {\n small: {\n chips: \"min-h-7 text-xs gap-0.5 px-1 py-0.5\",\n input: \"text-xs\",\n chip: \"h-4.5 text-[0.6875rem] px-1\",\n },\n medium: {\n chips: \"min-h-8 text-sm gap-1 px-2.5 py-1\",\n input: \"text-sm\",\n chip: \"h-5.25 text-xs px-1.5\",\n },\n large: {\n chips: \"min-h-10 text-sm gap-1 px-2.5 py-1.5\",\n input: \"text-sm\",\n chip: \"h-6 text-xs px-2\",\n },\n};\n","import { useCallback, useId, useMemo, useState } from \"react\";\n\nimport { buildAriaDescribedBy, buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { useMultiSelectOptions } from \"./useMultiSelectOptions\";\nimport { CREATE_PREFIX } from \"./useCreatableItems\";\nimport { SIZE_CONFIG } from \"src/components/Select/constants\";\nimport type { SelectProps } from \"src/components/Select/types\";\n\ntype SingleSelectProps = Extract<SelectProps, { isMulti?: false }>;\n\nconst defaultFormatCreateLabel = (v: string) => `Create \"${v}\"`;\n\nexport function useSelectState(props: SingleSelectProps) {\n const {\n id: idProp,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n value: valueProp,\n defaultValue,\n onChange,\n dataTestId,\n isCreatable = false,\n onCreateOption,\n formatCreateLabel = defaultFormatCreateLabel,\n isClearable = false,\n isDisabled = false,\n required = false,\n isSearchable = true,\n autoHighlight = true,\n onOpenChange,\n children,\n } = props;\n\n const opt = useMultiSelectOptions(props);\n\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const sizeConfig = SIZE_CONFIG[size];\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? \"\"\n );\n const currentValue = isControlled ? (valueProp ?? \"\") : internalValue;\n\n const applyValue = useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const handleValueChange = useCallback(\n (next: string | null) => {\n const raw = next ?? \"\";\n\n // Handle the creatable \"Create X\" option\n if (raw.startsWith(CREATE_PREFIX)) {\n const newValue = raw.slice(CREATE_PREFIX.length);\n onCreateOption?.(newValue);\n applyValue(newValue);\n return;\n }\n\n applyValue(raw);\n },\n [applyValue, onCreateOption]\n );\n\n const [inputValue, setInputValueState] = useState(\"\");\n const trimmedInput = inputValue.trim();\n\n const combinedHandleInputValueChange = useCallback(\n (value: string) => {\n setInputValueState(value);\n if (opt.isAsync) opt.handleAsyncInputChange(value);\n },\n [opt.isAsync, opt.handleAsyncInputChange]\n );\n\n const handleClear = useCallback(() => {\n applyValue(\"\");\n }, [applyValue]);\n\n const showCreateOption = useMemo(() => {\n if (\n !isCreatable ||\n trimmedInput.length === 0 ||\n currentValue === trimmedInput\n )\n return false;\n const lower = trimmedInput.toLowerCase();\n return !opt.flatOptions.some(\n o => o.label.toLowerCase() === lower || o.value.toLowerCase() === lower\n );\n }, [isCreatable, trimmedInput, currentValue, opt.flatOptions]);\n\n const effectiveItems = useMemo(() => {\n if (children) return undefined;\n const base = opt.baseUiItems;\n if (!showCreateOption) return base;\n const createValue = `${CREATE_PREFIX}${trimmedInput}`;\n if (!opt.isGrouped) {\n return [...((base as string[]) ?? []), createValue];\n }\n return [\n ...((base as { label: string; items: string[] }[]) ?? []),\n { label: \"\", items: [createValue] },\n ];\n }, [\n children,\n opt.baseUiItems,\n opt.isGrouped,\n showCreateOption,\n trimmedInput,\n ]);\n\n const creatableFilter = useCallback(\n (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => {\n if (itemValue.startsWith(CREATE_PREFIX)) return true;\n const label = itemToString?.(itemValue) ?? itemValue;\n return label.toLowerCase().includes(query.toLowerCase());\n },\n []\n );\n\n const ariaDescribedBy = buildAriaDescribedBy(\n error,\n errorId,\n helpText,\n helpTextId\n );\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n const showClearButton = isClearable && !!currentValue && !isDisabled;\n\n const flatOptionsMap = useMemo(\n () => new Map(opt.flatOptions.map(o => [o.value, o])),\n [opt.flatOptions]\n );\n\n const labelForValue = useCallback(\n (val: string) => {\n if (val.startsWith(CREATE_PREFIX)) {\n return formatCreateLabel(val.slice(CREATE_PREFIX.length));\n }\n return flatOptionsMap.get(val)?.label ?? val;\n },\n [flatOptionsMap, formatCreateLabel]\n );\n\n return {\n ...opt,\n id,\n errorId,\n helpTextId,\n sizeConfig,\n isControlled,\n currentValue,\n effectiveItems,\n creatableFilter,\n handleValueChange,\n handleInputValueChange: combinedHandleInputValueChange,\n handleClear,\n showCreateOption,\n showClearButton,\n ariaDescribedBy,\n testIdPrefix,\n labelForValue,\n flatOptionsMap,\n label,\n error,\n helpText,\n isDisabled,\n required,\n isSearchable,\n autoHighlight,\n onOpenChange,\n isClearable,\n };\n}\n","import { useCallback, useId, useMemo, useState } from \"react\";\n\nconst defaultFormatCreateLabel = (v: string) => `Create \"${v}\"`;\n\nimport { buildAriaDescribedBy, buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { useCreatableItems, CREATE_PREFIX } from \"./useCreatableItems\";\nimport { useMultiSelectOptions } from \"./useMultiSelectOptions\";\nimport { SIZE_CONFIG } from \"src/components/Select/constants\";\nimport type { MultiSelectProps } from \"src/components/Select/types\";\n\nexport function useMultiSelectState(props: MultiSelectProps) {\n const {\n id: idProp,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n value: valueProp,\n defaultValue,\n onChange,\n dataTestId,\n isCreatable = false,\n onCreateOption,\n formatCreateLabel = defaultFormatCreateLabel,\n children,\n } = props;\n\n const opt = useMultiSelectOptions(props);\n\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const sizeConfig = SIZE_CONFIG[size];\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<string[]>(\n defaultValue ?? []\n );\n const selectedValues = isControlled ? valueProp : internalValue;\n\n const handleChange = useCallback(\n (values: string[]) => {\n setInternalValue(values);\n onChange?.(values);\n },\n [onChange]\n );\n\n const {\n showCreateOption,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n } = useCreatableItems({\n isCreatable,\n isGrouped: opt.isGrouped,\n flatOptions: opt.flatOptions,\n selectedValues,\n baseUiItems: opt.baseUiItems,\n onCreateOption,\n onChange: handleChange,\n onAsyncInputChange: opt.isAsync ? opt.handleAsyncInputChange : undefined,\n children,\n });\n\n const ariaDescribedBy = buildAriaDescribedBy(\n error,\n errorId,\n helpText,\n helpTextId\n );\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n\n const flatOptionsMap = useMemo(\n () => new Map(opt.flatOptions.map(o => [o.value, o])),\n [opt.flatOptions]\n );\n\n const labelForValue = useCallback(\n (val: string) => {\n if (val.startsWith(CREATE_PREFIX)) {\n return formatCreateLabel(val.slice(CREATE_PREFIX.length));\n }\n return flatOptionsMap.get(val)?.label ?? val;\n },\n [flatOptionsMap, formatCreateLabel]\n );\n\n return {\n ...opt,\n id,\n errorId,\n helpTextId,\n sizeConfig,\n isControlled,\n selectedValues,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n showCreateOption,\n ariaDescribedBy,\n testIdPrefix,\n labelForValue,\n flatOptionsMap,\n label,\n error,\n helpText,\n };\n}\n","import { useCallback, useState } from \"react\";\n\n/** Shared anchor + non-searchable click-to-focus behaviour for combobox triggers. */\nexport function useComboboxAnchor(isSearchable: boolean) {\n const [anchorEl, setAnchorEl] = useState<HTMLDivElement | null>(null);\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n if (!isSearchable) {\n (e.currentTarget as HTMLElement).querySelector(\"input\")?.focus();\n }\n },\n [isSearchable]\n );\n\n return { anchorEl, setAnchorEl, handleClick };\n}\n","import { ComboboxItem } from \"src/primitives/Combobox\";\nimport { CREATE_PREFIX } from \"src/hooks/useCreatableItems\";\nimport type { OptionBase } from \"./types\";\n\ninterface OptionItemProps {\n val: string;\n flatOptionsMap: Map<string, OptionBase>;\n labelForValue: (val: string) => string;\n testIdPrefix?: string;\n}\n\nexport function OptionItem({\n val,\n flatOptionsMap,\n labelForValue,\n testIdPrefix,\n}: OptionItemProps) {\n return (\n <ComboboxItem\n key={val}\n value={val}\n disabled={\n !val.startsWith(CREATE_PREFIX) && flatOptionsMap.get(val)?.disabled\n }\n className={val.startsWith(CREATE_PREFIX) ? \"text-primary\" : undefined}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-option` }\n : {})}\n >\n {labelForValue(val)}\n </ComboboxItem>\n );\n}\n","import type React from \"react\";\n\nimport {\n ComboboxList,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n} from \"src/primitives/Combobox\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport { OptionItem } from \"./OptionItem\";\nimport type { DropdownPassthroughProps } from \"./MultiSelectCombobox.types\";\n\ninterface MultiSelectDropdownProps extends DropdownPassthroughProps {\n labelForValue: (val: string) => string;\n testIdPrefix?: string;\n children?: React.ReactNode;\n}\n\nexport function MultiSelectDropdown({\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n loadingMessage,\n emptyMessage,\n showCreateOption,\n labelForValue,\n testIdPrefix,\n hasMoreLazy,\n loaderCallbackRef,\n children,\n}: MultiSelectDropdownProps) {\n return (\n <ComboboxList\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-menu` }\n : {})}\n >\n {isLoading && (\n <div className=\"flex w-full justify-center py-2 text-center text-sm text-muted-foreground\">\n {loadingMessage}\n </div>\n )}\n {!isLoading && !showCreateOption && (\n <ComboboxEmpty>{emptyMessage}</ComboboxEmpty>\n )}\n {children ??\n (resolvedOptions.length > 0 || showCreateOption ? (\n isGrouped ? (\n <ComboboxCollection>\n {(group: { label: string; items: string[] }) => (\n <ComboboxGroup\n key={group.label || \"__create__\"}\n items={group.items}\n >\n {group.label && <ComboboxLabel>{group.label}</ComboboxLabel>}\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n labelForValue={labelForValue}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n </ComboboxGroup>\n )}\n </ComboboxCollection>\n ) : (\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n labelForValue={labelForValue}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n )\n ) : null)}\n {hasMoreLazy && (\n <div\n ref={loaderCallbackRef}\n className=\"flex w-full items-center justify-center py-3\"\n data-testid={\n testIdPrefix ? `${testIdPrefix}-lazy-loader` : \"lazy-loader\"\n }\n >\n <Spinner />\n </div>\n )}\n </ComboboxList>\n );\n}\n","import { forwardRef, useCallback } from \"react\";\nimport { ChevronDownIcon, XIcon } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Combobox,\n ComboboxContent,\n ComboboxChips,\n ComboboxChipsInput,\n} from \"src/primitives/Combobox\";\nimport { useComboboxAnchor } from \"src/hooks/useComboboxAnchor\";\nimport { MultiSelectDropdown } from \"./MultiSelectDropdown\";\nimport type { SelectComboboxProps } from \"./SelectCombobox.types\";\n\nexport const SelectCombobox = forwardRef<HTMLInputElement, SelectComboboxProps>(\n (p, ref) => {\n const { anchorEl, setAnchorEl, handleClick } = useComboboxAnchor(\n p.isSearchable\n );\n\n const handleClearClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n p.handleClear();\n },\n [p.handleClear]\n );\n\n return (\n <Combobox\n name={p.name}\n {...(p.effectiveItems && !p.children\n ? {\n items: p.effectiveItems,\n itemToStringLabel: p.labelForValue,\n ...(!p.isSearchable || p.isAsync\n ? { filter: null }\n : p.isCreatable\n ? { filter: p.creatableFilter }\n : {}),\n }\n : {})}\n {...(p.isControlled\n ? { value: p.valueProp }\n : { defaultValue: p.defaultValue })}\n onValueChange={p.handleValueChange}\n {...(p.isCreatable || p.isAsync\n ? { onInputValueChange: p.handleInputValueChange }\n : {})}\n onOpenChange={p.onOpenChange}\n disabled={p.isDisabled}\n autoHighlight={p.autoHighlight}\n >\n <div\n ref={setAnchorEl}\n onClick={handleClick}\n className={!p.isSearchable ? \"cursor-pointer\" : undefined}\n >\n <ComboboxChips\n className={cn(\n p.sizeConfig.chips,\n !!p.error &&\n \"border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40\",\n p.inputClassName\n )}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-select-container` }\n : {})}\n >\n {!p.isSearchable &&\n (p.currentValue ? (\n <span className=\"flex-1 truncate\">\n {p.labelForValue(p.currentValue)}\n </span>\n ) : (\n <span className=\"flex-1 truncate text-muted-foreground\">\n {p.placeholder}\n </span>\n ))}\n\n <ComboboxChipsInput\n ref={ref}\n id={p.id}\n placeholder={\n p.isSearchable && !p.currentValue ? p.placeholder : undefined\n }\n aria-invalid={!!p.error || undefined}\n aria-describedby={p.ariaDescribedBy}\n aria-required={p.required || undefined}\n className={cn(\n p.sizeConfig.input,\n !p.isSearchable && \"w-0 min-w-0 overflow-hidden p-0 opacity-0\"\n )}\n disabled={p.isDisabled}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-select-input` }\n : {})}\n />\n\n {p.showClearButton && (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label=\"Clear selection\"\n className=\"shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={handleClearClick}\n >\n <XIcon className=\"size-3.5\" />\n </button>\n )}\n\n <ChevronDownIcon className=\"size-4 shrink-0 text-muted-foreground\" />\n </ComboboxChips>\n </div>\n\n <ComboboxContent anchor={anchorEl} {...p.contentProps}>\n <MultiSelectDropdown\n {...p.dropdownProps}\n labelForValue={p.labelForValue}\n testIdPrefix={p.testIdPrefix}\n >\n {p.children}\n </MultiSelectDropdown>\n </ComboboxContent>\n </Combobox>\n );\n }\n);\n\nSelectCombobox.displayName = \"SelectCombobox\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Combobox,\n ComboboxContent,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n} from \"src/primitives/Combobox\";\nimport { useComboboxAnchor } from \"src/hooks/useComboboxAnchor\";\nimport { MultiSelectDropdown } from \"./MultiSelectDropdown\";\nimport type { MultiSelectComboboxProps } from \"./MultiSelectCombobox.types\";\n\nexport const MultiSelectCombobox = forwardRef<\n HTMLInputElement,\n MultiSelectComboboxProps\n>((p, ref) => {\n const { anchorEl, setAnchorEl, handleClick } = useComboboxAnchor(\n p.isSearchable\n );\n\n return (\n <Combobox\n multiple\n name={p.name}\n {...(p.effectiveItems && !p.children\n ? {\n items: p.effectiveItems,\n itemToStringLabel: p.labelForValue,\n ...(!p.isSearchable || p.isAsync\n ? { filter: null }\n : p.isCreatable\n ? { filter: p.creatableFilter }\n : {}),\n }\n : {})}\n {...(p.isControlled\n ? { value: p.valueProp }\n : { defaultValue: p.defaultValue })}\n onValueChange={p.handleValueChange}\n {...(p.isCreatable || p.isAsync\n ? { onInputValueChange: p.handleInputValueChange }\n : {})}\n onOpenChange={p.onOpenChange}\n disabled={p.isDisabled}\n autoHighlight={p.autoHighlight}\n >\n <div\n ref={setAnchorEl}\n onClick={handleClick}\n className={!p.isSearchable ? \"cursor-pointer\" : undefined}\n >\n <ComboboxChips\n className={cn(\n p.sizeConfig.chips,\n !!p.error &&\n \"border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40\",\n p.chipsClassName,\n p.inputClassName\n )}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-select-container` }\n : {})}\n >\n {p.selectedValues.map(val => (\n <ComboboxChip\n key={val}\n className={p.sizeConfig.chip}\n showRemove={!p.hideChipRemove}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-chip` }\n : {})}\n >\n {p.labelForValue(val)}\n </ComboboxChip>\n ))}\n <ComboboxChipsInput\n ref={ref}\n id={p.id}\n placeholder={\n p.isSearchable && p.selectedValues.length === 0\n ? p.placeholder\n : undefined\n }\n aria-invalid={!!p.error || undefined}\n aria-describedby={p.ariaDescribedBy}\n aria-required={p.required || undefined}\n className={cn(\n p.sizeConfig.input,\n !p.isSearchable && \"w-0 min-w-0 overflow-hidden p-0 opacity-0\"\n )}\n disabled={p.isDisabled}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-select-input` }\n : {})}\n />\n </ComboboxChips>\n </div>\n <ComboboxContent anchor={anchorEl} {...p.contentProps}>\n <MultiSelectDropdown\n {...p.dropdownProps}\n labelForValue={p.labelForValue}\n testIdPrefix={p.testIdPrefix}\n >\n {p.children}\n </MultiSelectDropdown>\n </ComboboxContent>\n </Combobox>\n );\n});\nMultiSelectCombobox.displayName = \"MultiSelectCombobox\";\n","import React, { forwardRef } from \"react\";\n\nimport { useSelectState } from \"src/hooks/useSelectState\";\nimport { useMultiSelectState } from \"src/hooks/useMultiSelectState\";\nimport { SelectFieldWrapper } from \"./SelectFieldWrapper\";\nimport { SelectCombobox } from \"./SelectCombobox\";\nimport { MultiSelectCombobox } from \"./MultiSelectCombobox\";\nimport type { SelectProps, MultiSelectProps } from \"./types\";\n\nexport type {\n SelectProps,\n SelectOption,\n SelectOptionBase,\n SelectOptionGroup,\n} from \"./types\";\n\ntype SingleSelectProps = Extract<SelectProps, { isMulti?: false }>;\n\nconst SingleSelectInner = forwardRef<HTMLInputElement, SingleSelectProps>(\n (props, ref) => {\n const s = useSelectState(props);\n\n return (\n <SelectFieldWrapper\n id={s.id}\n label={s.label}\n error={s.error}\n helpText={s.helpText}\n errorId={s.errorId}\n helpTextId={s.helpTextId}\n isDisabled={s.isDisabled}\n required={s.required}\n testIdPrefix={s.testIdPrefix}\n labelProps={props.labelProps}\n className={props.className}\n >\n <SelectCombobox\n ref={ref}\n name={props.name}\n id={s.id}\n effectiveItems={s.effectiveItems}\n labelForValue={s.labelForValue}\n isSearchable={s.isSearchable}\n isAsync={s.isAsync}\n isCreatable={props.isCreatable ?? false}\n creatableFilter={s.creatableFilter}\n isControlled={s.isControlled}\n valueProp={props.value}\n defaultValue={props.defaultValue}\n currentValue={s.currentValue}\n handleValueChange={s.handleValueChange}\n handleInputValueChange={s.handleInputValueChange}\n handleClear={s.handleClear}\n onOpenChange={props.onOpenChange}\n isDisabled={s.isDisabled}\n autoHighlight={s.autoHighlight}\n required={s.required}\n isClearable={props.isClearable ?? false}\n showClearButton={s.showClearButton}\n sizeConfig={s.sizeConfig}\n error={s.error}\n placeholder={props.placeholder ?? \"\"}\n ariaDescribedBy={s.ariaDescribedBy}\n testIdPrefix={s.testIdPrefix}\n inputClassName={props.inputClassName}\n contentProps={props.contentProps}\n dropdownProps={{\n resolvedOptions: s.resolvedOptions,\n flatOptionsMap: s.flatOptionsMap,\n isGrouped: s.isGrouped,\n isLoading: s.isLoading,\n loadingMessage: props.loadingMessage ?? \"Loading\\u2026\",\n emptyMessage: props.emptyMessage ?? \"No results found.\",\n showCreateOption: s.showCreateOption,\n hasMoreLazy: s.hasMoreLazy,\n loaderCallbackRef: s.loaderCallbackRef,\n }}\n >\n {props.children}\n </SelectCombobox>\n </SelectFieldWrapper>\n );\n }\n);\nSingleSelectInner.displayName = \"SingleSelectInner\";\n\nconst MultiSelectInner = forwardRef<HTMLInputElement, MultiSelectProps>(\n (props, ref) => {\n const s = useMultiSelectState(props);\n const { isDisabled = false, required = false } = props;\n\n return (\n <SelectFieldWrapper\n id={s.id}\n label={s.label}\n error={s.error}\n helpText={s.helpText}\n errorId={s.errorId}\n helpTextId={s.helpTextId}\n isDisabled={isDisabled}\n required={required}\n testIdPrefix={s.testIdPrefix}\n labelProps={props.labelProps}\n className={props.className}\n >\n <MultiSelectCombobox\n ref={ref}\n name={props.name}\n id={s.id}\n effectiveItems={s.effectiveItems}\n labelForValue={s.labelForValue}\n isSearchable={props.isSearchable ?? true}\n isAsync={s.isAsync}\n isCreatable={props.isCreatable ?? false}\n creatableFilter={s.creatableFilter}\n isControlled={s.isControlled}\n valueProp={props.value}\n defaultValue={props.defaultValue}\n selectedValues={s.selectedValues}\n handleValueChange={\n s.handleValueChange as (...args: unknown[]) => void\n }\n handleInputValueChange={\n s.handleInputValueChange as (...args: unknown[]) => void\n }\n onOpenChange={props.onOpenChange}\n isDisabled={isDisabled}\n autoHighlight={props.autoHighlight ?? true}\n sizeConfig={s.sizeConfig}\n error={s.error}\n chipsClassName={props.chipsClassName}\n inputClassName={props.inputClassName}\n placeholder={props.placeholder ?? \"\"}\n hideChipRemove={props.hideChipRemove ?? false}\n ariaDescribedBy={s.ariaDescribedBy}\n required={required}\n testIdPrefix={s.testIdPrefix}\n contentProps={props.contentProps}\n dropdownProps={{\n resolvedOptions: s.resolvedOptions,\n flatOptionsMap: s.flatOptionsMap,\n isGrouped: s.isGrouped,\n isLoading: s.isLoading,\n loadingMessage: props.loadingMessage ?? \"Loading\\u2026\",\n emptyMessage: props.emptyMessage ?? \"No results found.\",\n showCreateOption: s.showCreateOption,\n hasMoreLazy: s.hasMoreLazy,\n loaderCallbackRef: s.loaderCallbackRef,\n }}\n >\n {props.children}\n </MultiSelectCombobox>\n </SelectFieldWrapper>\n );\n }\n);\nMultiSelectInner.displayName = \"MultiSelectInner\";\n\nconst Select = forwardRef<HTMLInputElement, SelectProps>((props, ref) => {\n if (props.isMulti === true) {\n return <MultiSelectInner {...(props as MultiSelectProps)} ref={ref} />;\n }\n return <SingleSelectInner {...(props as SingleSelectProps)} ref={ref} />;\n});\n\nSelect.displayName = \"Select\";\n\nexport { Select };\n"],"names":["React","defaultFormatCreateLabel","_jsx","_jsxs","XIcon","ChevronDownIcon"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Typography-D5TjXEfu.js","sources":["../src/shadcn/components/typography.tsx","../src/components/Typography/Typography.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\n\nconst typographyVariants = cva(\"\", {\n variants: {\n variant: {\n jumbo:\n \"text-5xl font-semibold leading-none tracking-tight\",\n h1: \"text-[40px] font-semibold leading-tight tracking-tight\",\n h2: \"text-[32px] font-semibold leading-tight tracking-tight\",\n h3: \"text-[28px] font-semibold leading-tight tracking-tight\",\n h4: \"text-2xl font-semibold leading-tight\",\n h5: \"text-xl font-semibold leading-tight\",\n h6: \"text-lg font-semibold leading-tight\",\n body1: \"text-base leading-normal\",\n body2: \"text-[15px] leading-normal\",\n body3: \"text-sm leading-normal\",\n caption: \"text-xs leading-normal\",\n nano: \"text-[10px] leading-normal\",\n code: \"font-mono text-sm\",\n },\n weight: {\n thin: \"font-thin\",\n extralight: \"font-extralight\",\n light: \"font-light\",\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n extrabold: \"font-extrabold\",\n black: \"font-black\",\n },\n color: {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n primary: \"text-primary\",\n destructive: \"text-destructive\",\n inherit: \"text-inherit\",\n },\n lineClamp: {\n none: \"\",\n 1: \"line-clamp-1\",\n 2: \"line-clamp-2\",\n 3: \"line-clamp-3\",\n },\n },\n defaultVariants: {\n variant: \"body3\",\n color: \"default\",\n },\n})\n\nconst defaultElementMap: Record<\n string,\n keyof React.JSX.IntrinsicElements\n> = {\n jumbo: \"h1\",\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n body1: \"p\",\n body2: \"p\",\n body3: \"p\",\n caption: \"span\",\n nano: \"span\",\n code: \"code\",\n}\n\nconst Typography = React.forwardRef<\n HTMLElement,\n React.ComponentProps<\"p\"> &\n VariantProps<typeof typographyVariants> & {\n asChild?: boolean\n }\n>(\n (\n {\n className,\n variant = \"body3\",\n weight,\n color = \"default\",\n lineClamp,\n asChild = false,\n ...props\n },\n ref\n ) => {\n const Comp = asChild\n ? Slot.Root\n : defaultElementMap[variant ?? \"body3\"] ?? \"p\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"typography\"\n data-variant={variant}\n className={cn(\n typographyVariants({ variant, weight, color, lineClamp, className })\n )}\n {...props}\n />\n )\n }\n)\n\nTypography.displayName = \"Typography\"\n\nexport { Typography, typographyVariants }\n","import { forwardRef, type ComponentProps } from \"react\";\nimport { Typography as ShadcnTypography } from \"src/shadcn/components/typography\";\n\nconst Typography = forwardRef<\n HTMLElement,\n ComponentProps<typeof ShadcnTypography>\n>((props, ref) => <ShadcnTypography ref={ref} {...props} />);\n\nTypography.displayName = \"Typography\";\n\nexport { Typography };\nexport { typographyVariants } from \"src/shadcn/components/typography\";\n"],"names":["Typography","Slot.Root","_jsx","ShadcnTypography"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion-BX5I9ypV.js","sources":["../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, Children } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Accordion as PrimitiveAccordion,\n AccordionItem as PrimitiveAccordionItem,\n AccordionTrigger as PrimitiveAccordionTrigger,\n AccordionContent as PrimitiveAccordionContent,\n} from \"src/primitives/Accordion\";\n\ntype AccordionRootProps = React.ComponentProps<typeof PrimitiveAccordion>;\n\nexport interface AccordionProps extends Omit<AccordionRootProps, \"children\"> {\n /** Accordion.Item children. */\n children?: ReactNode;\n}\n\ninterface AccordionItemProps extends React.ComponentProps<\n typeof PrimitiveAccordionItem\n> {\n /** Header text displayed in the trigger. */\n title: string;\n /** Content rendered when the item is expanded. */\n children?: ReactNode;\n}\n\nconst AccordionItemComponent = forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ title, children, className, value, ...otherProps }, ref) => (\n <PrimitiveAccordionItem\n ref={ref}\n value={value}\n className={cn(className)}\n {...otherProps}\n >\n <PrimitiveAccordionTrigger>{title}</PrimitiveAccordionTrigger>\n <PrimitiveAccordionContent>{children}</PrimitiveAccordionContent>\n </PrimitiveAccordionItem>\n )\n);\n\nAccordionItemComponent.displayName = \"Accordion.Item\";\n\nconst Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n ({ className, children, ...otherProps }, ref) => {\n // Auto-generate value props for items that don't have one\n const enhancedChildren = Children.map(children, (child, index) => {\n if (!React.isValidElement<AccordionItemProps>(child)) return child;\n const childValue = child.props.value ?? `item-${index}`;\n return React.cloneElement(child, { value: childValue });\n });\n\n return (\n <PrimitiveAccordion ref={ref} className={cn(className)} {...otherProps}>\n {enhancedChildren}\n </PrimitiveAccordion>\n );\n }\n) as React.ForwardRefExoticComponent<\n AccordionProps & React.RefAttributes<HTMLDivElement>\n> & {\n Item: typeof AccordionItemComponent;\n};\n\nAccordion.displayName = \"Accordion\";\nAccordion.Item = AccordionItemComponent;\n\nexport { Accordion };\n"],"names":["forwardRef","_jsxs","PrimitiveAccordionItem","cn","_jsx","PrimitiveAccordionTrigger","PrimitiveAccordionContent","Children","React","PrimitiveAccordion"],"mappings":";;;;;;;;;;;AA0BA,MAAM,sBAAsB,GAAGA,gBAAU,CACvC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MACxDC,eAAA,CAACC,kCAAsB,EAAA,EACrB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAEC,QAAE,CAAC,SAAS,CAAC,EAAA,GACpB,UAAU,EAAA,QAAA,EAAA,CAEdC,cAAA,CAACC,qCAAyB,EAAA,EAAA,QAAA,EAAE,KAAK,EAAA,CAA6B,EAC9DD,cAAA,CAACE,qCAAyB,EAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAA6B,CAAA,EAAA,CAC1C,CAC1B,CACF;AAED,sBAAsB,CAAC,WAAW,GAAG,gBAAgB;AAErD,MAAM,SAAS,GAAGN,gBAAU,CAC1B,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,KAAI;;AAE9C,IAAA,MAAM,gBAAgB,GAAGO,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAI;AAC/D,QAAA,IAAI,CAACC,sBAAK,CAAC,cAAc,CAAqB,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QAClE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AACvD,QAAA,OAAOA,sBAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACzD,IAAA,CAAC,CAAC;IAEF,QACEJ,eAACK,8BAAkB,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAEN,QAAE,CAAC,SAAS,CAAC,EAAA,GAAM,UAAU,YACnE,gBAAgB,EAAA,CACE;AAEzB,CAAC;AAOH,SAAS,CAAC,WAAW,GAAG,WAAW;AACnC,SAAS,CAAC,IAAI,GAAG,sBAAsB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColorPicker-DEELmqH8.js","sources":["../../node_modules/lucide-react/dist/esm/icons/pipette.js","../../../src/components/ColorPicker/hooks/useEyeDropper.ts","../../../src/components/ColorPicker/constants.ts","../../../src/components/ColorPicker/hooks/useRecentlyUsedColors.ts","../../../src/components/ColorPicker/utils.ts","../../../src/components/ColorPicker/Palette.tsx","../../../src/components/ColorPicker/Target.tsx","../../../src/components/ColorPicker/ColorPicker.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12\",\n key: \"1y3wsu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z\",\n key: \"110lr1\"\n }\n ],\n [\"path\", { d: \"m2 22 .414-.414\", key: \"jhxm08\" }]\n];\nconst Pipette = createLucideIcon(\"pipette\", __iconNode);\n\nexport { __iconNode, Pipette as default };\n//# sourceMappingURL=pipette.js.map\n","import { useCallback } from \"react\";\n\ninterface EyeDropperResult {\n sRGBHex: string;\n}\n\ndeclare global {\n interface Window {\n EyeDropper?: new () => { open: () => Promise<EyeDropperResult> };\n }\n}\n\nconst isSupported = typeof window !== \"undefined\" && \"EyeDropper\" in window;\n\nexport const useEyeDropper = () => {\n const open = useCallback(async (): Promise<string> => {\n if (!window.EyeDropper) throw new Error(\"EyeDropper API not supported\");\n\n const dropper = new window.EyeDropper();\n const result = await dropper.open();\n\n return result.sRGBHex;\n }, []);\n\n return { isSupported, open };\n};\n","export const DEFAULT_PALETTE_COLORS = [\n { hex: \"#FFFFFF\" },\n { hex: \"#D6D6D6\" },\n { hex: \"#0A0E13\" },\n { hex: \"#FECE1E\" },\n { hex: \"#F32E48\" },\n { hex: \"#02C39A\" },\n { hex: \"#2A79C4\" },\n { hex: \"#B3E5FC\" },\n { hex: \"#C3C6F9\" },\n { hex: \"#8064CE\" },\n { hex: \"#FE861E\" },\n { hex: \"#FF7DC9\" },\n { hex: \"#028090\" },\n { hex: \"#095482\" },\n];\n\nexport const RECENTLY_USED_STORAGE_KEY = \"recently-used-colors\";\n\nexport const TARGET_SIZES = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n} as const;\n\nexport const PICKER_HEIGHT: Record<string, string> = {\n small: \"100px\",\n medium: \"120px\",\n large: \"140px\",\n};\n","import { useSyncExternalStore } from \"react\";\n\nimport { RECENTLY_USED_STORAGE_KEY } from \"../constants\";\n\ninterface ColorValue {\n hex: string;\n rgb: string | { r: number; g: number; b: number; a?: number };\n}\n\nconst getFromStorage = (key: string, fallback: ColorValue[]): ColorValue[] => {\n try {\n const stored = localStorage.getItem(key);\n\n return stored ? JSON.parse(stored) : fallback;\n } catch {\n return fallback;\n }\n};\n\nconst setToStorage = (key: string, value: ColorValue[]) => {\n try {\n localStorage.setItem(key, JSON.stringify(value));\n } catch {\n // Silently fail if storage is unavailable\n }\n};\n\nconst createSyncedStore = (storageKey: string) => {\n const listeners = new Set<() => void>();\n\n const store = {\n value: getFromStorage(storageKey, []),\n getSnapshot: () => store.value,\n getServerSnapshot: () => [] as ColorValue[],\n setValue: (newValue: ColorValue[]) => {\n store.value = newValue;\n setToStorage(storageKey, newValue);\n listeners.forEach(listener => listener());\n },\n subscribe: (callback: () => void) => {\n listeners.add(callback);\n\n const storageEventHandler = (event: StorageEvent) => {\n if (event.key !== storageKey) return;\n store.value = getFromStorage(storageKey, []);\n listeners.forEach(listener => listener());\n };\n\n if (listeners.size === 1) {\n window.addEventListener(\"storage\", storageEventHandler);\n }\n\n return () => {\n listeners.delete(callback);\n if (listeners.size === 0) {\n window.removeEventListener(\"storage\", storageEventHandler);\n }\n };\n },\n };\n\n return store;\n};\n\nconst store = createSyncedStore(RECENTLY_USED_STORAGE_KEY);\n\nexport const useRecentlyUsedColors = (): [\n ColorValue[],\n (value: ColorValue[]) => void,\n] => [\n useSyncExternalStore(\n store.subscribe,\n store.getSnapshot,\n store.getServerSnapshot\n ),\n store.setValue,\n];\n","/**\n * Validates a hex color string (3, 4, 6, or 8 digits with optional #).\n */\nexport const isValidHex = (hex: string): boolean =>\n /^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(hex);\n\n/**\n * Parses a hex color string into RGBA components.\n * Returns { r: 0, g: 0, b: 0, a: 1 } for invalid inputs.\n */\nexport const hexToRgb = (\n hex: string\n): { r: number; g: number; b: number; a: number } => {\n const raw = hex.replace(/^#/, \"\");\n\n if (\n !/^([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(raw)\n ) {\n return { r: 0, g: 0, b: 0, a: 1 };\n }\n\n let r: number,\n g: number,\n b: number,\n a = 255;\n if (raw.length === 3 || raw.length === 4) {\n r = parseInt(raw[0] + raw[0], 16);\n g = parseInt(raw[1] + raw[1], 16);\n b = parseInt(raw[2] + raw[2], 16);\n if (raw.length === 4) a = parseInt(raw[3] + raw[3], 16);\n } else {\n r = parseInt(raw.slice(0, 2), 16);\n g = parseInt(raw.slice(2, 4), 16);\n b = parseInt(raw.slice(4, 6), 16);\n if (raw.length === 8) a = parseInt(raw.slice(6, 8), 16);\n }\n\n return { r, g, b, a: Math.round((a / 255) * 100) / 100 };\n};\n\n/**\n * Converts a hex color to an 8-digit hex string (#RRGGBBAA).\n */\nexport const hexToHex8 = (hex: string): string => {\n const { r, g, b, a } = hexToRgb(hex);\n const alpha = Math.round(a * 255);\n\n return `#${[r, g, b, alpha].map(v => v.toString(16).padStart(2, \"0\")).join(\"\")}`;\n};\n\n/**\n * Converts a color value to a normalized { hex, rgb } object.\n * Handles transparency and validity checks.\n */\nexport const getColor = (\n colorValue: string,\n showTransparencyControl: boolean\n): { hex: string; rgb: { r: number; g: number; b: number; a: number } } => {\n if (!isValidHex(colorValue)) {\n return { hex: colorValue, rgb: { r: 0, g: 0, b: 0, a: 1 } };\n }\n\n const rgb = hexToRgb(colorValue);\n\n if (rgb.a === 0) {\n return { hex: colorValue, rgb };\n }\n\n const hex = showTransparencyControl\n ? hexToHex8(colorValue)\n : `#${colorValue.replace(/^#/, \"\").slice(0, 6)}`;\n\n return { hex, rgb: hexToRgb(hex) };\n};\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { isValidHex } from \"./utils\";\nimport { DEFAULT_PALETTE_COLORS } from \"./constants\";\nimport type { PaletteColor } from \"./types\";\n\nexport interface PaletteProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Currently selected color. */\n color?: string;\n /** List of colors to render. */\n colorList?: PaletteColor[];\n /** Callback when a color swatch is clicked. */\n onChange?: (color: string) => void;\n}\n\nconst Palette = forwardRef<HTMLDivElement, PaletteProps>(\n (\n {\n color,\n colorList = DEFAULT_PALETTE_COLORS,\n onChange,\n className,\n ...props\n },\n ref\n ) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-row flex-wrap items-start justify-start gap-1\",\n className\n )}\n {...props}\n >\n {colorList.map(item => {\n const value = item.hex ?? item.rgb ?? \"\";\n const isActive =\n !!color && !!value && color.toLowerCase() === value.toLowerCase();\n\n return (\n <button\n type=\"button\"\n key={value}\n data-testid=\"color-palette-item\"\n className={cn(\n \"size-6 rounded-[5px] border cursor-pointer overflow-hidden transition-colors\",\n isActive\n ? \"border-muted-foreground\"\n : \"border-border hover:border-muted-foreground/50\"\n )}\n onClick={() => onChange?.(value)}\n >\n <span\n className={cn(\n \"block size-full\",\n isValidHex(value)\n ? \"\"\n : \"bg-[repeating-conic-gradient(#ccc_0_25%,transparent_0_50%)] bg-[length:8px_8px]\"\n )}\n style={isValidHex(value) ? { backgroundColor: value } : undefined}\n />\n </button>\n );\n })}\n </div>\n )\n);\n\nPalette.displayName = \"ColorPicker.Palette\";\n\nexport { Palette };\n","import React, { forwardRef } from \"react\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nconst targetVariants = cva(\n \"inline-flex items-center justify-between rounded-md border border-input bg-background transition-colors hover:border-muted-foreground focus-visible:outline-none focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-primary/15 cursor-pointer\",\n {\n variants: {\n size: {\n small: \"h-7 p-0.5 gap-2\",\n medium: \"h-8 p-1 gap-2\",\n large: \"h-10 p-1.5 gap-3\",\n },\n },\n defaultVariants: {\n size: \"large\",\n },\n }\n);\n\nexport interface TargetProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"size\">,\n VariantProps<typeof targetVariants> {\n /** Show hex code text beside the color swatch. */\n showHexValue?: boolean;\n /** The original color prop value. */\n color?: string;\n /** The resolved color value to display. */\n colorValue?: string;\n}\n\nconst Target = forwardRef<HTMLButtonElement, TargetProps>(\n (\n { size = \"large\", showHexValue, color, colorValue, className, ...props },\n ref\n ) => (\n <button\n ref={ref}\n type=\"button\"\n data-testid=\"color-picker-target\"\n className={cn(targetVariants({ size }), className)}\n {...props}\n >\n {showHexValue && (\n <span className=\"text-sm font-medium text-foreground min-w-[4.5rem] ps-1\">\n {color}\n </span>\n )}\n <span className=\"inline-flex items-center gap-2\">\n <span\n className=\"block size-5 rounded-md border border-border\"\n style={{ backgroundColor: colorValue }}\n />\n <ChevronDown className=\"size-4 text-muted-foreground\" />\n </span>\n </button>\n )\n);\n\nTarget.displayName = \"ColorPicker.Target\";\n\nexport { Target };\n","import React, { forwardRef, useState, useRef } from \"react\";\n\nimport { Pipette } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n HexColorPicker,\n HexColorInput,\n HexAlphaColorPicker,\n} from \"react-colorful\";\nimport { Button } from \"src/primitives/Button\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"src/primitives/Popover\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { useEyeDropper } from \"./hooks/useEyeDropper\";\nimport { useRecentlyUsedColors } from \"./hooks/useRecentlyUsedColors\";\nimport { Palette } from \"./Palette\";\nimport { Target } from \"./Target\";\nimport { PICKER_HEIGHT } from \"./constants\";\nimport type { ColorPickerProps } from \"./types\";\nimport { getColor } from \"./utils\";\n\nconst ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(\n (\n {\n color = \"\",\n size = \"large\",\n onChange,\n dropdownProps,\n showEyeDropper = true,\n showHexValue = false,\n showTransparencyControl = false,\n showPicker = true,\n showHexPicker = true,\n colorPalette,\n showRecentlyUsedColors = showPicker,\n className,\n },\n ref\n ) => {\n const { t } = useTranslation();\n const [colorInternal, setColorInternal] = useState(color);\n const [isColorSelected, setIsColorSelected] = useState(false);\n const [open, setOpen] = useState(false);\n const hexColorInputValue = useRef(\"\");\n const { isSupported: eyeDropperSupported, open: openEyeDropper } =\n useEyeDropper();\n const [recentlyUsedColors, setRecentlyUsedColors] = useRecentlyUsedColors();\n\n const PickerComponent = showTransparencyControl\n ? HexAlphaColorPicker\n : HexColorPicker;\n\n const colorValue = color ?? colorInternal ?? \"\";\n\n const onColorChange = (value: string) => {\n setIsColorSelected(true);\n\n if (onChange) {\n onChange(getColor(value, showTransparencyControl));\n } else {\n setColorInternal(value);\n }\n };\n\n const onColorInputChange = (hex: string) => {\n hexColorInputValue.current = hex;\n const expectedLength = showTransparencyControl ? 9 : 7;\n if (hex.length !== expectedLength) return;\n\n onColorChange(hex);\n hexColorInputValue.current = \"\";\n };\n\n const onBlur = () => {\n if (!hexColorInputValue.current) return;\n\n onColorChange(hexColorInputValue.current);\n hexColorInputValue.current = \"\";\n };\n\n const pickColor = async () => {\n try {\n const hex = await openEyeDropper();\n onColorChange(hex);\n } catch {\n // User cancelled or API unavailable\n }\n };\n\n const onOpenChange = (nextOpen: boolean) => {\n if (!nextOpen && showRecentlyUsedColors && isColorSelected) {\n const newColor = getColor(colorValue, showTransparencyControl);\n const filtered = recentlyUsedColors.filter(\n ({ hex }) => hex !== newColor.hex\n );\n const updated = [newColor, ...filtered];\n if (updated.length > 14) updated.pop();\n\n setRecentlyUsedColors(updated);\n setIsColorSelected(false);\n }\n\n setOpen(nextOpen);\n };\n\n return (\n <Popover open={open} onOpenChange={onOpenChange}>\n <PopoverTrigger asChild>\n <Target\n color={color}\n colorValue={colorValue}\n showHexValue={showHexValue}\n size={size}\n />\n </PopoverTrigger>\n <PopoverContent\n ref={ref}\n align=\"start\"\n side=\"bottom\"\n className={cn(\"w-auto p-3\", className)}\n {...dropdownProps}\n >\n <div className=\"flex flex-col gap-3 w-56\">\n {showPicker && (\n <>\n {showHexPicker && (\n <div\n data-testid=\"neeto-color-picker-section\"\n style={{\n [\"--react-colorful-height\" as string]:\n PICKER_HEIGHT[size] ?? \"140px\",\n }}\n >\n <PickerComponent\n color={colorValue}\n onChange={onColorChange}\n style={{\n width: \"100%\",\n height: PICKER_HEIGHT[size] ?? \"140px\",\n }}\n />\n </div>\n )}\n <div className=\"flex items-center justify-center gap-2\">\n {showEyeDropper && eyeDropperSupported && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={pickColor}\n aria-label={t(\n \"neetoatoms.colorPicker.pickColor\",\n \"Pick color from screen\"\n )}\n >\n <Pipette className=\"size-4\" />\n </Button>\n )}\n <div\n className=\"flex-1\"\n data-testid=\"colorpicker-editable-input\"\n >\n <HexColorInput\n prefixed\n alpha={!!showTransparencyControl}\n color={colorValue}\n data-testid=\"colorpicker-editable-input-textbox\"\n onChange={onColorInputChange}\n onBlur={onBlur}\n className=\"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-sm outline-none focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-primary/15\"\n />\n </div>\n </div>\n </>\n )}\n <div\n data-testid=\"color-palette\"\n className={cn(showPicker && \"border-t border-border pt-3\")}\n >\n <Palette\n color={color}\n colorList={colorPalette}\n onChange={onColorChange}\n />\n </div>\n {showRecentlyUsedColors && recentlyUsedColors.length > 0 && (\n <div\n className=\"border-t border-border pt-3\"\n data-testid=\"color-palette-recently-used\"\n >\n <p className=\"text-xs font-medium text-muted-foreground mb-2\">\n {t(\"neetoatoms.colorPicker.recentlyUsed\", \"Recently used\")}\n </p>\n <Palette\n colorList={recentlyUsedColors}\n onChange={onColorChange}\n />\n </div>\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n);\n\nColorPicker.displayName = \"ColorPicker\";\n\nexport { ColorPicker };\n"],"names":["createLucideIcon","useCallback","useSyncExternalStore","forwardRef","_jsx","cn","cva","_jsxs","ChevronDown","useTranslation","useState","useRef","HexAlphaColorPicker","HexColorPicker","Popover","PopoverTrigger","PopoverContent","_Fragment","Button","HexColorInput"],"mappings":"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","x_google_ignoreList":[0]}
|